{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "view-in-github"
   },
   "source": [
    "<a href=\"https://colab.research.google.com/github/mrdbourke/pytorch-deep-learning/blob/main/extras/solutions/09_pytorch_model_deployment_exercise_solutions.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "zNqPNlYylluR"
   },
   "source": [
    "# 09. PyTorch Model Deployment Exercise Solutions\n",
    "\n",
    "Welcome to the 09. PyTorch Model Deployment exercise solutions.\n",
    "\n",
    "Your objective is to write code to satisify each of the exercises below.\n",
    "\n",
    "Some starter code has been provided to make sure you have all the resources you need.\n",
    "\n",
    "> **Note:** There may be more than one solution to each of the exercises.\n",
    "\n",
    "## Resources\n",
    "\n",
    "1. These exercises/solutions are based on [section 09. PyTorch Model Deployment](https://www.learnpytorch.io/09_pytorch_model_deployment/) of the Learn PyTorch for Deep Learning course by Zero to Mastery.\n",
    "2. See a live [walkthrough of the solutions (errors and all) on YouTube](https://youtu.be/jOX5ZCkWO-0) (but try the exercises yourself first!).\n",
    "3. See [all solutions on the course GitHub](https://github.com/mrdbourke/pytorch-deep-learning/tree/main/extras/solutions).\n",
    "\n",
    "> **Note:** The first section of this notebook is dedicated to getting various helper functions and datasets used for the exercises. The exercises start at the heading \"Exercise 1: ...\"."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "sf8ab9cyHTzU"
   },
   "source": [
    "### Get various imports and helper functions\n",
    "\n",
    "The code in the following cells prepares imports and data for the exercises below. They are taken from [09. PyTorch Model Deployment](https://www.learnpytorch.io/09_pytorch_model_deployment/). "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "ChRaHUSJ8DYZ",
    "outputId": "0a27f03f-33ea-4721-e4ec-858b8dc255b1"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "torch version: 1.12.1+cu113\n",
      "torchvision version: 0.13.1+cu113\n"
     ]
    }
   ],
   "source": [
    "# For this notebook to run with updated APIs, we need torch 1.12+ and torchvision 0.13+\n",
    "try:\n",
    "    import torch\n",
    "    import torchvision\n",
    "    assert int(torch.__version__.split(\".\")[1]) >= 12, \"torch version should be 1.12+\"\n",
    "    assert int(torchvision.__version__.split(\".\")[1]) >= 13, \"torchvision version should be 0.13+\"\n",
    "    print(f\"torch version: {torch.__version__}\")\n",
    "    print(f\"torchvision version: {torchvision.__version__}\")\n",
    "except:\n",
    "    print(f\"[INFO] torch/torchvision versions not as required, installing nightly versions.\")\n",
    "    !pip3 install -U torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113\n",
    "    import torch\n",
    "    import torchvision\n",
    "    print(f\"torch version: {torch.__version__}\")\n",
    "    print(f\"torchvision version: {torchvision.__version__}\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "id": "Y5H5P8EjCNGK"
   },
   "outputs": [],
   "source": [
    "# Continue with regular imports\n",
    "import matplotlib.pyplot as plt\n",
    "import torch\n",
    "import torchvision\n",
    "\n",
    "from torch import nn\n",
    "from torchvision import transforms\n",
    "\n",
    "# Try to get torchinfo, install it if it doesn't work\n",
    "try:\n",
    "    from torchinfo import summary\n",
    "except:\n",
    "    print(\"[INFO] Couldn't find torchinfo... installing it.\")\n",
    "    !pip install -q torchinfo\n",
    "    from torchinfo import summary\n",
    "\n",
    "# Try to import the going_modular directory, download it from GitHub if it doesn't work\n",
    "try:\n",
    "    from going_modular.going_modular import data_setup, engine\n",
    "    from helper_functions import download_data, set_seeds, plot_loss_curves\n",
    "except:\n",
    "    # Get the going_modular scripts\n",
    "    print(\"[INFO] Couldn't find going_modular or helper_functions scripts... downloading them from GitHub.\")\n",
    "    !git clone https://github.com/mrdbourke/pytorch-deep-learning\n",
    "    !mv pytorch-deep-learning/going_modular .\n",
    "    !mv pytorch-deep-learning/helper_functions.py . # get the helper_functions.py script\n",
    "    !rm -rf pytorch-deep-learning\n",
    "    from going_modular.going_modular import data_setup, engine\n",
    "    from helper_functions import download_data, set_seeds, plot_loss_curves"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 36
    },
    "id": "bE1AAH_uCjiP",
    "outputId": "8337aa8d-9a46-41ad-9f96-658e857fcf57"
   },
   "outputs": [
    {
     "data": {
      "application/vnd.google.colaboratory.intrinsic+json": {
       "type": "string"
      },
      "text/plain": [
       "'cuda'"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "device = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n",
    "device"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "GmS5yuvxCpLp"
   },
   "source": [
    "### Get data\n",
    "\n",
    "Want to download the data we've been using in PyTorch Model Deployment: https://www.learnpytorch.io/09_pytorch_model_deployment/#1-getting-data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "dm772wqgCzN9",
    "outputId": "ca47901f-5786-4d76-d768-58ad8349704c"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[INFO] data/pizza_steak_sushi_20_percent directory exists, skipping download.\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "PosixPath('data/pizza_steak_sushi_20_percent')"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Download pizza, steak, sushi images from GitHub\n",
    "image_path = download_data(source=\"https://github.com/mrdbourke/pytorch-deep-learning/raw/main/data/pizza_steak_sushi_20_percent.zip\",\n",
    "                           destination=\"pizza_steak_sushi_20_percent\")\n",
    "image_path"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "id": "r1ML2c-dCzCi"
   },
   "outputs": [],
   "source": [
    "# Setup directory paths to train and test images\n",
    "train_dir = image_path / \"train\"\n",
    "test_dir = image_path / \"test\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "nNBZ_2h_Cy86"
   },
   "source": [
    "### Preprocess data\n",
    "\n",
    "Turn images into tensors using same code as PyTorch Paper Replicating section 2.1 and 2.2: https://www.learnpytorch.io/08_pytorch_paper_replicating/#21-prepare-transforms-for-images"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "mU0T4gP3DJdF",
    "outputId": "00d58b26-a6cb-4c3f-b774-2414c36bbce9"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Manually created transforms: Compose(\n",
      "    Resize(size=(224, 224), interpolation=bilinear, max_size=None, antialias=None)\n",
      "    ToTensor()\n",
      ")\n"
     ]
    }
   ],
   "source": [
    "# Create image size (from Table 3 in the ViT paper) \n",
    "IMG_SIZE = 224\n",
    "\n",
    "# Create transform pipeline manually\n",
    "manual_transforms = transforms.Compose([\n",
    "    transforms.Resize((IMG_SIZE, IMG_SIZE)),\n",
    "    transforms.ToTensor(),\n",
    "])           \n",
    "print(f\"Manually created transforms: {manual_transforms}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "W4vWgIprDJau",
    "outputId": "10423c3f-dc63-4e76-cd80-db5c6915662a"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(<torch.utils.data.dataloader.DataLoader at 0x7f6f9f66a3d0>,\n",
       " <torch.utils.data.dataloader.DataLoader at 0x7f6f9f698ed0>,\n",
       " ['pizza', 'steak', 'sushi'])"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Set the batch size\n",
    "BATCH_SIZE = 32 # this is lower than the ViT paper but it's because we're starting small\n",
    "\n",
    "# Create data loaders\n",
    "train_dataloader, test_dataloader, class_names = data_setup.create_dataloaders(\n",
    "    train_dir=train_dir,\n",
    "    test_dir=test_dir,\n",
    "    transform=manual_transforms, # use manually created transforms\n",
    "    batch_size=BATCH_SIZE\n",
    ")\n",
    "\n",
    "train_dataloader, test_dataloader, class_names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "u7eLIFHyDJRr",
    "outputId": "dfa3408c-0ef4-45ae-c5c7-88f8f92d0beb"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(torch.Size([3, 224, 224]), tensor(2))"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Get a batch of images\n",
    "image_batch, label_batch = next(iter(train_dataloader))\n",
    "\n",
    "# Get a single image from the batch\n",
    "image, label = image_batch[0], label_batch[0]\n",
    "\n",
    "# View the batch shapes\n",
    "image.shape, label"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 264
    },
    "id": "2yyNHCmCDbSR",
    "outputId": "a3d16804-3449-4105-e7e6-7da79bc495c2"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot image with matplotlib\n",
    "plt.imshow(image.permute(1, 2, 0)) # rearrange image dimensions to suit matplotlib [color_channels, height, width] -> [height, width, color_channels]\n",
    "plt.title(class_names[label])\n",
    "plt.axis(False);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "nwmoMhW8IqSu"
   },
   "source": [
    "## Exercise 1. Make and time predictions with both feature extractor models on the test dataset using the GPU (`device=\"cuda\"`). \n",
    "\n",
    "* Compare the model's prediction times on GPU vs CPU - does this close the gap between them? As in, does making predictions on the GPU make the ViT feature extractor prediction times closer to the EffNetB2 feature extractor prediction times?\n",
    "* You'll find code to do these steps in [section 5. Making predictions with our trained models and timing them](https://www.learnpytorch.io/09_pytorch_model_deployment/#5-making-predictions-with-our-trained-models-and-timing-them) and [section 6. Comparing model results, prediction times and size](https://www.learnpytorch.io/09_pytorch_model_deployment/#6-comparing-model-results-prediction-times-and-size)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "P8DX4FnUe0lp"
   },
   "source": [
    "### Train two models on Pizza, Steak, Sushi data\n",
    "\n",
    "Need:\n",
    "* Trained EffNetB2 feature extractor \n",
    "* Trained ViT feature extractor"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "W9gGOufOfD5l"
   },
   "source": [
    "### EffNetB2 \n",
    "\n",
    "See function creation source here: https://www.learnpytorch.io/09_pytorch_model_deployment/#31-creating-a-function-to-make-an-effnetb2-feature-extractor"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "id": "UR-P1QaBfFoZ"
   },
   "outputs": [],
   "source": [
    "def create_effnetb2_model(num_classes:int=3, \n",
    "                          seed:int=42):\n",
    "    \"\"\"Creates an EfficientNetB2 feature extractor model and transforms.\n",
    "\n",
    "    Args:\n",
    "        num_classes (int, optional): number of classes in the classifier head. \n",
    "            Defaults to 3.\n",
    "        seed (int, optional): random seed value. Defaults to 42.\n",
    "\n",
    "    Returns:\n",
    "        model (torch.nn.Module): EffNetB2 feature extractor model. \n",
    "        transforms (torchvision.transforms): EffNetB2 image transforms.\n",
    "    \"\"\"\n",
    "    # 1, 2, 3. Create EffNetB2 pretrained weights, transforms and model\n",
    "    weights = torchvision.models.EfficientNet_B2_Weights.DEFAULT\n",
    "    transforms = weights.transforms()\n",
    "    model = torchvision.models.efficientnet_b2(weights=weights)\n",
    "\n",
    "    # 4. Freeze all layers in base model\n",
    "    for param in model.parameters():\n",
    "        param.requires_grad = False\n",
    "\n",
    "    # 5. Change classifier head with random seed for reproducibility\n",
    "    torch.manual_seed(seed)\n",
    "    model.classifier = nn.Sequential(\n",
    "        nn.Dropout(p=0.3, inplace=True),\n",
    "        nn.Linear(in_features=1408, out_features=num_classes),\n",
    "    )\n",
    "    \n",
    "    return model, transforms"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "PcLxlyFrfUGJ",
    "outputId": "47bf699d-c300-43e5-e26d-680e5518eb91"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "ImageClassification(\n",
       "    crop_size=[288]\n",
       "    resize_size=[288]\n",
       "    mean=[0.485, 0.456, 0.406]\n",
       "    std=[0.229, 0.224, 0.225]\n",
       "    interpolation=InterpolationMode.BICUBIC\n",
       ")"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "effnetb2, effnetb2_transforms = create_effnetb2_model()\n",
    "# effnetb2\n",
    "effnetb2_transforms"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "b8LqE-XMgZM6",
    "outputId": "1f5b9547-8ce2-4b99-f4aa-8e90f0c7fb3d"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(PosixPath('data/pizza_steak_sushi_20_percent/train'),\n",
       " PosixPath('data/pizza_steak_sushi_20_percent/test'))"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_dir, test_dir"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "IWMbHg7pf24Y",
    "outputId": "39d2b3f8-7796-4723-9e02-293ca9c395f6"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(15, 5, ['pizza', 'steak', 'sushi'])"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Create dataloaders for EffNetB2 \n",
    "from going_modular.going_modular import data_setup\n",
    "\n",
    "BATCH_SIZE = 32\n",
    "train_dataloader_effnetb2, test_dataloader_effnetb2, class_names = data_setup.create_dataloaders(train_dir=train_dir,\n",
    "                                                                                                 test_dir=test_dir,\n",
    "                                                                                                 transform=effnetb2_transforms,\n",
    "                                                                                                 batch_size=BATCH_SIZE)\n",
    "\n",
    "len(train_dataloader_effnetb2), len(test_dataloader_effnetb2), class_names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 227,
     "referenced_widgets": [
      "198a73324ffa4478afc64c011df8368c",
      "d9c166e1d7d9461eb3d9fe0fa2ced5b1",
      "8025ad7772fb40f69b2fddfd7eab62e6",
      "984c980048f24b2cbfb45df1dc3c9bd7",
      "583f6c14fb3b4125a7c4486782fe7a2f",
      "254d130afee243edb15dba9198e14f95",
      "350d659062d34f90b0a61aca7f07b108",
      "6f375d622ce84f95959f1ec00ab5b4fb",
      "1b7118878ac04c4ab3a5555f59aade61",
      "f7ddad2e2e604fd8b0240683f54ad8a3",
      "afdc91f716ec416db36ef586ce623942"
     ]
    },
    "id": "POcQESk6gulj",
    "outputId": "2181b910-47c7-4e19-b574-607f400ef0bb"
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "198a73324ffa4478afc64c011df8368c",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/10 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 1 | train_loss: 0.9856 | train_acc: 0.5604 | test_loss: 0.7408 | test_acc: 0.9347\n",
      "Epoch: 2 | train_loss: 0.7175 | train_acc: 0.8438 | test_loss: 0.5869 | test_acc: 0.9409\n",
      "Epoch: 3 | train_loss: 0.5876 | train_acc: 0.8917 | test_loss: 0.4909 | test_acc: 0.9500\n",
      "Epoch: 4 | train_loss: 0.4474 | train_acc: 0.9062 | test_loss: 0.4355 | test_acc: 0.9409\n",
      "Epoch: 5 | train_loss: 0.4290 | train_acc: 0.9104 | test_loss: 0.3915 | test_acc: 0.9443\n",
      "Epoch: 6 | train_loss: 0.4381 | train_acc: 0.8896 | test_loss: 0.3512 | test_acc: 0.9688\n",
      "Epoch: 7 | train_loss: 0.4245 | train_acc: 0.8771 | test_loss: 0.3268 | test_acc: 0.9563\n",
      "Epoch: 8 | train_loss: 0.3897 | train_acc: 0.8958 | test_loss: 0.3457 | test_acc: 0.9381\n",
      "Epoch: 9 | train_loss: 0.3749 | train_acc: 0.8812 | test_loss: 0.3129 | test_acc: 0.9131\n",
      "Epoch: 10 | train_loss: 0.3757 | train_acc: 0.8604 | test_loss: 0.2813 | test_acc: 0.9688\n"
     ]
    }
   ],
   "source": [
    "# Train EffNetB2 feature extractor\n",
    "from going_modular.going_modular import engine\n",
    "\n",
    "optimizer = torch.optim.Adam(params=effnetb2.parameters(), lr=1e-3)\n",
    "\n",
    "loss_fn = torch.nn.CrossEntropyLoss()\n",
    "\n",
    "set_seeds()\n",
    "effnetb2_results = engine.train(model=effnetb2,\n",
    "                                train_dataloader=train_dataloader_effnetb2,\n",
    "                                test_dataloader=test_dataloader_effnetb2,\n",
    "                                epochs=10,\n",
    "                                optimizer=optimizer,\n",
    "                                loss_fn=loss_fn,\n",
    "                                device=device)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "id": "dE5GngR5igju"
   },
   "outputs": [],
   "source": [
    "# With label_smoothing=0.1\n",
    "# Epoch: 1 | train_loss: 1.0005 | train_acc: 0.5708 | test_loss: 0.7872 | test_acc: 0.9347\n",
    "# Epoch: 2 | train_loss: 0.7704 | train_acc: 0.8500 | test_loss: 0.6603 | test_acc: 0.9409\n",
    "# Epoch: 3 | train_loss: 0.6679 | train_acc: 0.8896 | test_loss: 0.5883 | test_acc: 0.9500\n",
    "# Epoch: 4 | train_loss: 0.5608 | train_acc: 0.9146 | test_loss: 0.5522 | test_acc: 0.9318\n",
    "# Epoch: 5 | train_loss: 0.5528 | train_acc: 0.9125 | test_loss: 0.5239 | test_acc: 0.9352\n",
    "# Epoch: 6 | train_loss: 0.5718 | train_acc: 0.8875 | test_loss: 0.4973 | test_acc: 0.9597\n",
    "# Epoch: 7 | train_loss: 0.5609 | train_acc: 0.8854 | test_loss: 0.4864 | test_acc: 0.9472\n",
    "# Epoch: 8 | train_loss: 0.5457 | train_acc: 0.8958 | test_loss: 0.5050 | test_acc: 0.9318\n",
    "# Epoch: 9 | train_loss: 0.5338 | train_acc: 0.8896 | test_loss: 0.4809 | test_acc: 0.9193\n",
    "# Epoch: 10 | train_loss: 0.5417 | train_acc: 0.8500 | test_loss: 0.4654 | test_acc: 0.9625\n",
    "\n",
    "# Without label_smoothing=0.1\n",
    "# Epoch: 1 | train_loss: 0.9856 | train_acc: 0.5604 | test_loss: 0.7408 | test_acc: 0.9347\n",
    "# Epoch: 2 | train_loss: 0.7175 | train_acc: 0.8438 | test_loss: 0.5869 | test_acc: 0.9409\n",
    "# Epoch: 3 | train_loss: 0.5876 | train_acc: 0.8917 | test_loss: 0.4909 | test_acc: 0.9500\n",
    "# Epoch: 4 | train_loss: 0.4474 | train_acc: 0.9062 | test_loss: 0.4355 | test_acc: 0.9409\n",
    "# Epoch: 5 | train_loss: 0.4290 | train_acc: 0.9104 | test_loss: 0.3915 | test_acc: 0.9443\n",
    "# Epoch: 6 | train_loss: 0.4381 | train_acc: 0.8896 | test_loss: 0.3512 | test_acc: 0.9688\n",
    "# Epoch: 7 | train_loss: 0.4245 | train_acc: 0.8771 | test_loss: 0.3268 | test_acc: 0.9563\n",
    "# Epoch: 8 | train_loss: 0.3897 | train_acc: 0.8958 | test_loss: 0.3457 | test_acc: 0.9381\n",
    "# Epoch: 9 | train_loss: 0.3749 | train_acc: 0.8812 | test_loss: 0.3129 | test_acc: 0.9131\n",
    "# Epoch: 10 | train_loss: 0.3757 | train_acc: 0.8604 | test_loss: 0.2813 | test_acc: 0.9688"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 458
    },
    "id": "g73VUMNfi8yO",
    "outputId": "d57b3bb4-5d56-4ddf-f415-6e6612811e57"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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IiL+p1bb81trp1lrk621yfHx8bV5ahERr3Xw4EFefPHFar9v1KhRHDx4sNrvGz9+PB9++GG13yciIiK1pyaC2i6gRaXnzT2viYhIFZwuqJWWlp7xfV999RUNGza8UGWJiIiIi2qiPf/nwH3GmPeAfsAha+2eGjiuiEite/zf61i/+3CNHrNz0wb84aoup90+ZcoUNm/eTI8ePQgODiYsLIzo6GjS0tLYuHEj1157LTt37qSwsJBf/OIXTJ48GYBWrVqRmppKfn4+I0eOZODAgSxatIhmzZrx2WefUa9evbPW9u233/Lggw9SWlpKnz59eOmllwgNDWXKlCl8/vnnBAUFccUVV/D000/zwQcf8PjjjxMYGEhUVBQLFiyosZ+RiIiInOisQc0Y8y4wFIgzxmQCfwCCAay1LwNfAaOADKAAmHChihUR8UdPPfUUa9euZeXKlcybN4+f/exnrF279thaZNOnTycmJoajR4/Sp08fbrjhBmJjY084xqZNm3j33Xd55ZVXuPnmm/noo48YO3bsGc9bWFjI+PHj+fbbb+nQoQO33347L730EuPGjeOTTz4hLS0NY8yx6ZVTp05l9uzZNGvW7JymXIqIiEjVnTWoWWtvPct2C9xbYxWJiLjoTCNftaVv374nLBj93HPP8cknnwCwc+dONm3a9JOg1rp1a3r06AFA79692bZt21nPk56eTuvWrenQoQMAd9xxBy+88AL33XcfYWFhTJw4kdGjRzN69GgABgwYwPjx47n55pu5/vrra+JbFRERkdOo1WYiNamkrJxl2w+4XYaISI2LiIg49vW8efP45ptv+OGHH1i1ahU9e/Y85YLSoaGhx74ODAw86/1tZxIUFMSSJUu48cYb+eKLLxgxwllK8+WXX+aJJ55g586d9O7dm/3795/zOURELpjiAjiif5/kAstcBiU/vR7XJJ8Nam8t3s4NLy1iZ26B26WIiJyXyMhI8vLyTrnt0KFDREdHEx4eTlpaGosXL66x83bs2JFt27aRkZEBwMyZMxkyZAj5+fkcOnSIUaNG8be//Y1Vq1YBsHnzZvr168fUqVOJj49n586dZzq8iEjtKi2CxS/Bs13hL23g5YHw9aOwZb6zTaSm7FsHb1wFsx++oKepiWYirhjSwWnvn5Kexe39W7lbjIjIeYiNjWXAgAF07dqVevXq0ahRo2Pb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",
      "text/plain": [
       "<Figure size 1080x504 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from helper_functions import plot_loss_curves\n",
    "\n",
    "plot_loss_curves(effnetb2_results)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "jk25LUPyioIe"
   },
   "source": [
    "### Preparing and training ViT feature extractor"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "id": "1Bp3kSv8i1B1"
   },
   "outputs": [],
   "source": [
    "def create_vit_model(num_classes:int=3, \n",
    "                     seed:int=42):\n",
    "    \"\"\"Creates a ViT-B/16 feature extractor model and transforms.\n",
    "\n",
    "    Args:\n",
    "        num_classes (int, optional): number of target classes. Defaults to 3.\n",
    "        seed (int, optional): random seed value for output layer. Defaults to 42.\n",
    "\n",
    "    Returns:\n",
    "        model (torch.nn.Module): ViT-B/16 feature extractor model. \n",
    "        transforms (torchvision.transforms): ViT-B/16 image transforms.\n",
    "    \"\"\"\n",
    "    # Create ViT_B_16 pretrained weights, transforms and model\n",
    "    weights = torchvision.models.ViT_B_16_Weights.DEFAULT\n",
    "    transforms = weights.transforms()\n",
    "    model = torchvision.models.vit_b_16(weights=weights)\n",
    "\n",
    "    # Freeze all layers in model\n",
    "    for param in model.parameters():\n",
    "        param.requires_grad = False\n",
    "\n",
    "    # Change classifier head to suit our needs (this will be trainable)\n",
    "    torch.manual_seed(seed)\n",
    "    model.heads = nn.Sequential(nn.Linear(in_features=768, # keep this the same as original model\n",
    "                                          out_features=num_classes)) # update to reflect target number of classes\n",
    "    \n",
    "    return model, transforms"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "LNbhVc0BjR5X",
    "outputId": "cff89102-6e62-4666-b22f-bf660eac5a65"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "ImageClassification(\n",
       "    crop_size=[224]\n",
       "    resize_size=[256]\n",
       "    mean=[0.485, 0.456, 0.406]\n",
       "    std=[0.229, 0.224, 0.225]\n",
       "    interpolation=InterpolationMode.BILINEAR\n",
       ")"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "vit, vit_transforms = create_vit_model()\n",
    "# vit\n",
    "vit_transforms"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "yKqlWhjcjcGh",
    "outputId": "5258c1ca-31f2-4404-c837-ddd1ccd045f7"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(15, 5, ['pizza', 'steak', 'sushi'])"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Create dataloaders for ViT\n",
    "from going_modular.going_modular import data_setup\n",
    "\n",
    "BATCH_SIZE = 32\n",
    "train_dataloader_vit, test_dataloader_vit, class_names = data_setup.create_dataloaders(train_dir=train_dir,\n",
    "                                                                                                 test_dir=test_dir,\n",
    "                                                                                                 transform=vit_transforms,\n",
    "                                                                                                 batch_size=BATCH_SIZE)\n",
    "\n",
    "len(train_dataloader_vit), len(test_dataloader_vit), class_names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 227,
     "referenced_widgets": [
      "aedc4452fd6c4e369c3b9a97f2dc7f4a",
      "d80e97a6b93f4c2fb10f1dd68ef7d593",
      "3e5d069cc92e4043bf5910b929fc33c5",
      "fbe8e188bfb04a6686661761dc6d81d2",
      "c104170bf4694edf925f9a1fbabe3f0c",
      "3dc2eed246ea4996ad7671f71eb47394",
      "187c5d5bf68643fbbe754554c5ed9143",
      "f91d279664c74d53bc460d05f0af5d39",
      "a3b71aabdf9e42fc9517aa924b114531",
      "d2e3fd807351478abeb4fd9440310999",
      "9a69b9bbcca740d6811e51bbf2c7e0c7"
     ]
    },
    "id": "G28CNZNzjpoR",
    "outputId": "970b0956-a0b1-4975-d796-16df917cadaf"
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "aedc4452fd6c4e369c3b9a97f2dc7f4a",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/10 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 1 | train_loss: 0.7023 | train_acc: 0.7500 | test_loss: 0.2714 | test_acc: 0.9290\n",
      "Epoch: 2 | train_loss: 0.2531 | train_acc: 0.9104 | test_loss: 0.1669 | test_acc: 0.9602\n",
      "Epoch: 3 | train_loss: 0.1766 | train_acc: 0.9542 | test_loss: 0.1270 | test_acc: 0.9693\n",
      "Epoch: 4 | train_loss: 0.1277 | train_acc: 0.9625 | test_loss: 0.1072 | test_acc: 0.9722\n",
      "Epoch: 5 | train_loss: 0.1163 | train_acc: 0.9646 | test_loss: 0.0950 | test_acc: 0.9784\n",
      "Epoch: 6 | train_loss: 0.1270 | train_acc: 0.9375 | test_loss: 0.0830 | test_acc: 0.9722\n",
      "Epoch: 7 | train_loss: 0.0899 | train_acc: 0.9771 | test_loss: 0.0844 | test_acc: 0.9784\n",
      "Epoch: 8 | train_loss: 0.0928 | train_acc: 0.9812 | test_loss: 0.0759 | test_acc: 0.9722\n",
      "Epoch: 9 | train_loss: 0.0933 | train_acc: 0.9792 | test_loss: 0.0729 | test_acc: 0.9784\n",
      "Epoch: 10 | train_loss: 0.0662 | train_acc: 0.9833 | test_loss: 0.0642 | test_acc: 0.9847\n"
     ]
    }
   ],
   "source": [
    "# Train ViT feature extractor\n",
    "from going_modular.going_modular import engine\n",
    "\n",
    "optimizer = torch.optim.Adam(params=vit.parameters(), lr=1e-3)\n",
    "\n",
    "loss_fn = torch.nn.CrossEntropyLoss()\n",
    "\n",
    "set_seeds()\n",
    "vit_results = engine.train(model=vit,\n",
    "                                train_dataloader=train_dataloader_vit,\n",
    "                                test_dataloader=test_dataloader_vit,\n",
    "                                epochs=10,\n",
    "                                optimizer=optimizer,\n",
    "                                loss_fn=loss_fn,\n",
    "                                device=device)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 458
    },
    "id": "3bknFBKMj25N",
    "outputId": "5d5730a7-20e5-45db-8b96-e1a510748e16"
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2oAAAG5CAYAAAD/HsejAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeXhU5d3/8fednWQSSMIMOwESQBYFBEFEq61VURHXultxKe3T2se21hbbqtXWp7b1ZzeXtm7to1UfpbVSRaFacUUWN2TPhDUgTEgIZBKyzOT+/XEmIWCAJExyMjOf13XNlcycM3O+M2JmPnPf9/cYay0iIiIiIiLSfSS5XYCIiIiIiIgcSEFNRERERESkm1FQExERERER6WYU1ERERERERLoZBTUREREREZFuRkFNRERERESkm1FQExERERER6WYU1ESOgjFmkzHmy27XISIi0tmMMYuMMbuNMelu1yKSCBTUREREROSwjDFDgFMAC8zswuOmdNWxRLobBTWRKDPGpBtjfmuM2R65/Lbp20djTG9jzEvGmEpjTIUx5m1jTFJk2w+NMduMMVXGmHXGmNPdfSYiIiLNvgq8D/wFuLbpRmPMIGPMP4wxZcaYcmPMAy22fc0YsybyvrbaGHN85HZrjClqsd9fjDE/j/x+mjGmNPKeuAN4whiTG3nvLIuM6L1kjBnY4v55xpgnIu+5u40x/4zcvtIYc16L/VKNMbuMMRM67VUSiSIFNZHo+zFwIjAeGAdMBn4S2XYLUAp4gT7AjwBrjBkJ3AScYK3NBs4CNnVt2SIiIof0VeBvkctZxpg+xphk4CVgMzAEGAA8C2CM+Qrw08j9cnBG4crbeKy+QB5QAMzG+bz6ROT6YGAf8ECL/Z8EMoExgA/4TeT2/wWubrHfOcBn1tqP2liHiKs0nCwSfVcB37bWBgCMMXcBfwJuBxqAfkCBtdYPvB3ZJwykA6ONMWXW2k1uFC4iInIwY8zJOCHpOWvtLmNMCXAlzghbf+BWa20osvs7kZ83Ar+y1i6LXPe345CNwJ3W2rrI9X3A31vUcw/wRuT3fsDZQL61dndklzcjP58CbjfG5Fhr9wLX4IQ6kZigETWR6OuP8+1ik82R2wB+jfNmtdAYs8EYMwcgEtq+g/PtY8AY86wxpj8iIiLuuxZYaK3dFbn+dOS2QcDmFiGtpUFASQePV2atrW26YozJNMb8yRiz2RizF3gL6BUZ0RsEVLQIac2stduBd4GLjTG9cALd3zpYk0iXU1ATib7tON88NhkcuQ1rbZW19hZr7TCcaSDfa1qLZq192lrb9K2lBX7ZtWWLiIgcyBjTA7gUONUYsyOybuy7OFP7dwKDD9HwYytQeIiHrcGZqtik70Hb7UHXbwFGAlOstTnAF5rKixwnLxLEWvNXnOmPXwEWW2u3HWI/kW5HQU3k6KUaYzKaLsAzwE+MMV5jTG/gDpzpFxhjZhhjiowxBtgDhIFGY8xIY8yXIk1HanGmeTS683RERESaXYDzXjUaZ+31eGAUztT9C4DPgHuNMVmR98Fpkfs9CnzfGDPROIqMMU1fYn4MXGmMSTbGTAdOPUIN2Tjvi5XGmDzgzqYN1trPgFeAhyJNR1KNMV9ocd9/AscDN+OsWROJGQpqIkdvPs4bSNMlA1gOrAA+BT4Efh7ZdzjwGhAEFgMPWWvfwFmfdi+wC9iBsxj6tq57CiIiIq26FnjCWrvFWruj6YLTzOMK4DygCNiC0yzrMgBr7fPAPTjTJKtwAlNe5DFvjtyvEmdd9z+PUMNvgR4475HvA68etP0anDXga4EAzlICInU0rW8bCvyjnc9dxFXG2oNHl0VERERE4oMx5g5ghLX26iPuLNKNqOujiIiIiMSlyFTJG3BG3URiiqY+ioiIiEjcMcZ8DafZyCvW2rfcrkekvTT1UUREREREpJvRiJqIiIiIiEg349oatd69e9shQ4a4dXgREelCH3zwwS5rrdftOmKF3iNFRBLD4d4fXQtqQ4YMYfny5W4dXkREupAxZrPbNcQSvUeKiCSGw70/auqjiIiIiIhIN6OgJiIiIiIi0s0oqImIiIiIiHQzOuG1iCS8hoYGSktLqa2tdbuUmJeRkcHAgQNJTU11uxQREZGYpqAmIgmvtLSU7OxshgwZgjHG7XJilrWW8vJySktLGTp0qNvliIiIxDRNfRSRhFdbW0t+fr5C2lEyxpCfn6+RSRERkShQUBMRAYW0KNHrKCIiEh0KaiIiIiIiIt2MgpqIiIiIiEg3o6AmIuKyyspKHnrooXbf75xzzqGysrLd95s1axZz585t9/1ERESk6yioiYi47FBBLRQKHfZ+8+fPp1evXp1VloiIiLhI7flFRFq461+rWL19b1Qfc3T/HO48b8wht8+ZM4eSkhLGjx9PamoqGRkZ5ObmsnbtWtavX88FF1zA1q1bqa2t5eabb2b27NkADBkyhOXLlxMMBjn77LM5+eSTee+99xgwYAAvvvgiPXr0OGJtr7/+Ot///vcJhUKccMIJPPzww6SnpzNnzhzmzZtHSkoKZ555Jvfddx/PP/88d911F8nJyfTs2ZO33noraq+RiIiIHEhBTUTEZffeey8rV67k448/ZtGiRZx77rmsXLmy+Vxkjz/+OHl5eezbt48TTjiBiy++mPz8/AMeo7i4mGeeeYZHHnmESy+9lL///e9cffXVhz1ubW0ts2bN4vXXX2fEiBF89atf5eGHH+aaa67hhRdeYO3atRhjmqdX3n333SxYsIABAwZ0aMqliIiItJ2CmohIC4cb+eoqkydPPuCE0b///e954YUXANi6dSvFxcWfC2pDhw5l/PjxAEycOJFNmzYd8Tjr1q1j6NChjBgxAoBrr72WBx98kJtuuomMjAxuuOEGZsyYwYwZMwCYNm0as2bN4tJLL+Wiiy6KxlMVERGRQ2jTGjVjzHRjzDpjjN8YM6eV7b8xxnwcuaw3xnT6V6019SE+2VpJY6Pt7EOJiHSprKys5t8XLVrEa6+9xuLFi/nkk0+YMGFCqyeUTk9Pb/49OTn5iOvbDiclJYWlS5dyySWX8NJLLzF9+nQA/vjHP/Lzn/+crVu3MnHiRMrLyzt8DBERkZhlLVRshD2lnXqYI46oGWOSgQeBM4BSYJkxZp61dnXTPtba77bY/9vAhE6o9QD/+HAbP/nnSt6b8yX69zryOgwRke4qOzubqqqqVrft2bOH3NxcMjMzWbt2Le+//37Ujjty5Eg2bdqE3++nqKiIJ598klNPPZVgMEhNTQ3nnHMO06ZNY9iwYQCUlJQwZcoUpkyZwiuvvMLWrVs/N7InIiISdxoboWwtbHkPNr8HmxdD1XaYdjOccXenHbYtUx8nA35r7QYAY8yzwPnA6kPsfwVwZ3TKO7QinwcAfyCooCYiMS0/P59p06YxduxYevToQZ8+fZq3TZ8+nT/+8Y+MGjWKkSNHcuKJJ0btuBkZGTzxxBN85StfaW4m8o1vfIOKigrOP/98amtrsdZy//33A3DrrbdSXFyMtZbTTz+dcePGRa0WERGRbiPcAJ994oSyLYudy77dzrbsfoQHTWVn7vGYwi/SrxPLMNYefuqgMeYSYLq19sbI9WuAKdbam1rZtwB4HxhorQ23sn02MBtg8ODBEzdv3tzhwsuq6jjhnte487zRXDdt6JHvICJyCGvWrGHUqFFulxE3Wns9jTEfWGsnuVRSzJk0aZJdvny522WIiCSG+hrYttwZKdv8LpQug4YaAGpzhrA9ZwIrU8fwTt0IFu/2UFpZi7Xw9VOHcdvZR/f54XDvj9FuJnI5MLe1kAZgrf0z8Gdw3oSO5kC9PWn07JFKSVnwaB5GREREREQSyb5K2LoENr+L3bwYtn+EaWzAYvgso4hPUr/MonAR/6kpoqy2FwQgPSWJYV4P4wd7uHhiFkU+D+MGdu65TNsS1LYBg1pcHxi5rTWXA9862qLawhhDoTcLf0BBTUSkNd/61rd49913D7jt5ptv5rrrrnOpIhER6W6stewK1hNutORmpZKekux2SdFXtYPwxncJFr9N0pb38OxZj8HSQAorbSHvh6ezpPEYPmwcAfSkyOehaJiHr/k8zu/ebAbk9iA5yXRp2W0JasuA4caYoTgB7XLgyoN3MsYcA+QCi6Na4WEUej0sWl/WVYcTEYkpDz74oNsliIhINxFutGzbvQ9/WRX+QPCAy97a/Z2CPekp5GalkpeVTl5m5GfW/p+5mWnke9Kcn1npZGekkNTFAeZw9tWF2LphFcH1b5O27X18uz/E17CNZCDFpvNh43CWNl5MSY/j2NdnAgV98in0ZjE7Esq8nnSM6R7P54hBzVobMsbcBCwAkoHHrbWrjDF3A8uttfMiu14OPGuPtOgtiop8Hp7/oJQ9+xro2SO1qw4rIiIiItIt1YXCbNxV3RzCSsqc3zeUBakLNTbv19uTTpEvi5nj+1Po9ZCekszumnrKg/XOz+p6dgXrWb8zSEV1PfsaWl3ZRHKSITczLRLm0sjLagpxaeRGrre85GamkZF69KN2u6vr8ZcF8e/cy97NK8jcsYR+ez5mbGgVI4zT+GO39bAqZQyL8mZQ0+9EsodMoLBvLrO9WWRndP/s0KY1atba+cD8g26746DrP41eWW1T6HU6P5aUBTl+cG5XH15ERERExBV7axsoaRoVKws2/76looam0wwbAwNze1Dk9XByUb4zjc/nodDroVdmWruOt68+TEVNPRXBeudndR0V1Q0H/Nxd3cC6HVXsrmlgd009hxq+yUpLJjfroDCXmUaeJ/KzRbBLTU7aHzzLgmzcWUlaYAUj6z5lctJazk5aTy9TDcDuFC8B32TKBkzFM+IU+g8fx8mp3T+QHUq0m4l0qaYW/SUBBTURERERiS/WWsqq6ppDyv5RsiA799Y175eWnMTQ3lmM6d+TmeMHUOjNag5k0Ri9AuiRlsyAtB4MaONpscKNlj37Gqiorj/gcvCoXXmwnuLDjNplUMeEJD9TktZwfsp6xlFMBnWQCjXZQ2kcfD6NRaeQNGQaub0Gk9tNpi1GQ0wHtYG5PUhLTsKvzo8iIiIinStUB9s+jJz0dzF89jHkDoWCqTD4JBg8BXroi/MD1AWdVu9bFjvn5AqsAd8oKJjmvG4DT4C0LMKNltLdNQeuHYsEs6qD1o8V+jycXORtHh0r8nkYlNuDlOQkF5/o5yUnmeZRsbbaVx9md0WA+pJ3SS59n6wdS+lVuYokG8JioO+xmILroOAkGDyVTI+vE5+B+2I6qKUkJzGkdyYlgWq3SxER6bDKykqefvppvvnNb7b7vr/97W+ZPXs2mZmZh9xnyJAhLF++nN69ex9NmSKSaOqqYOvS/SGjdDmEI6M43mOg6MtQsQEWPwTv/g4w0GcMDJ7qfJAuOAmy+7r6FLpcTcX+12vLYtj+MdgwmCToeyzhojNo2P4p6W/+CkMjYZJZn1zEuw3DeT80kmWNI9mDp3n92Pnj+1Pk9VDky6bI56FPTvdpdBE1ez+LhP/36LF5MT0CqwELyWnQ/3gY820omIYZNBkyerpdbZeK6aAGzvTHNZ9VuV2GiEiHVVZW8tBDD3U4qF199dWHDWoiIm1SvSsSMhY7H5w/WxEJGcnQ7ziY/DUnhA2eCln5++/XsM8JcVsiJwv++GlY9oizLW+YM9pWEAlvuUOdhVPxYs+2/c9782IoW+PcnpwGAybByd9xnvfAySzZ3sB1f1lGTf15ZFPD8UnFfDnTz5TkdcxqXMCNSS8BEO49iuSh0/YH3pz+Lj7BKLPWCfdNQXbzu7B7k7MtNcsZlR1zofPvZcBESG3bNMt4FfNBrdDrYcGqndSFwvF53gcR6VqvzIEdn0b3MfseC2ffe8jNc+bMoaSkhPHjx3PGGWfg8/l47rnnqKur48ILL+Suu+6iurqaSy+9lNLSUsLhMLfffjs7d+5k+/btfPGLX6R379688cYbRyzl/vvv5/HHHwfgxhtv5Dvf+U6rj33ZZZcxZ84c5s2bR0pKCmeeeSb33Xdf1F4SEekGKrceGDJ2rXNuT053puSd8j0nLAyaDOnZh36c1B4w9BTnAhBucEJe0xTJdS/Dx0852zx9I6EtEkR8oyGpe03ZOyRrobzEeb2aXrfKLc62tGzndTr2Eidc9T8eUjOa71pTH+LWuW/jzU7nljNHUuT1MMx70f71Yw21sO0D2PweyVveg0+ehWWPOttyh7QIu9Oc8BsrYbcxDIHVzr+DptctuNPZ1iPPea0mz3b+LfQ9DpJjPppEVcy/GkU+D+FGy5byGob3OcwfERGRburee+9l5cqVfPzxxyxcuJC5c+eydOlSrLXMnDmTt956i7KyMvr378/LL78MwJ49e+jZsyf3338/b7zxRpumNX7wwQc88cQTLFmyBGstU6ZM4dRTT2XDhg2fe+zy8nJeeOEF1q5dizGGysrKTn0NRKSTWQu7iluEjMWwJxIy0nNg0BQYd3kkZEyAlPSOHys5FQZOdC4nfRsaG50QuPm9/SMpq15w9s3ouX+UruAk6DceUtrXjbDTNIZh58oD666OnL83s7cTnKb8l1N3n7GHDRm/XrCOLRU1/N/sE5kyLP/zO6RmwJBpzgUgHIIdK/ZPoyxeAJ887WzL8h0YdvuMgaRuMlgRqoftH+0P6Vveh7o9zracgTD01P1rGr0jYydwuiTmg1pTi35/IKigJiJH7zAjX11h4cKFLFy4kAkTJgAQDAYpLi7mlFNO4ZZbbuGHP/whM2bM4JRTTmn3Y7/zzjtceOGFZGVlAXDRRRfx9ttvM3369M89digUIiMjgxtuuIEZM2YwY8aMqD5PEelk4RDs/LTFSMb7ULPL2ZbldcLF1G9FQkYnf9BPSnIaaPhGwQk3OKGxcksk/ERC0PpXnX1TesDASfvXuEWabXSJA5qlvOesz6vb62zrORgKvxRpYnES9B7e5pCxfFMFf3lvE9dOLWg9pLUmOQUGHO9cpn4rErTXHxgaV7/o7Jve05ky2BR2jzZot0dTs5SmmkqXQajW2dZ7BIy5YP9/y16Du6amOBLzQW2Y1/mft0SdH0UkDlhrue222/j617/+uW0ffvgh8+fP5yc/+Qmnn346d9xxRyuP0H4jRoxo9bGXLl3K66+/zty5c3nggQf4z3/+E5XjiUgnaJo61zSSsXUJ1Ec+G/UqgOFn7A8Z+YXujmQYA7kFzmX8Fc5twcD+0aPN78GbvwIsJKU4o2zNnSVPhMy86NTR1CylOWS0aJbSeySMvbi5uyC9BnXoELUNYX4wdwUDevXgB9OP6XitxjgjUN6RMOk657bKLfvXE25+D4oXOrenZDjr4woi0yUHToZ0T8eP3VLLZimb34PPPjmgWQqTrt8/QurxRueYCSzmg1pmWgoDevXAH1BQE5HYlJ2dTVWV0xTprLPO4vbbb+eqq67C4/Gwbds2UlNTCYVC5OXlcfXVV9OrVy8effTRA+7blqmPp5xyCrNmzWLOnDlYa3nhhRd48skn2b59++ceOxgMUlNTwznnnMO0adMYNmxYp74GItJOtXsjISMylXHbBxCud7Z5R8Fxl+0PGT0HuFtrW3h8MPp85wJQu2d/iNr8Hiz5E7z3B2ebb/SBnSXb2myjZbOUze8665FbNks54cb9r1lWG0e+juA3/17Phl3V/O3GKWSlR/ljd6/BzmXcZc71YJnz/JqC1Nv3wVuNkec3bv9za8/z27OtxcjnIZqlDD7JWZ+XkRPd5yexH9TAGVUrKVOLfhGJTfn5+UybNo2xY8dy9tlnc+WVVzJ16lQAPB4PTz31FH6/n1tvvZWkpCRSU1N5+OGHAZg9ezbTp0+nf//+R2wmcvzxxzNr1iwmT54MOM1EJkyYwIIFCz732FVVVZx//vnU1tZireX+++/v3BdBRA4vWLb/w/Lmd521UzbyIbz/eKchQ8G06I44uSmjpzMKOPwM53rDPmdaYlNoWPF/sPwxZ1uvgv3nJWvZbOOwzVImtb1ZSgd9tGU3j7y9gSsmD2JaURecHsXjhdEznQs4Yb50aeTfzHuw9BFY/ICzzXtMJOxGXreeAyPNUvwHdmT8XLOUi537HNQsRTqHsda6cuBJkybZ5cuXR+Wx7vrXKv5v2VZW3XVW/J1bQkQ63Zo1axg1apTbZcSN1l5PY8wH1tpJLpUUc6L5HikxIlQHe7e3uGzb/7NsHZQXO/ulZDjrtppGRwaeEL1pbbHk4GYbm9+DfRXOtiyfs0Zrz1bnelOzlKYg1wVruOpCYWb8/h2CdSEWfPcL5GSkdurx2qSh1mn00TQKu2UJ1EdOcdVzMIT2tWiWkr9/qmzBVOhzrDoydpLDvT/GxSte6PVQUx/msz219O+V2OdbEBERkW6mvvrz4WvvdudEv02/NzX6aCk9x5nWl18IE65yPjT3n9B9uiK6qbVmG2Xr9o86hutg6k2RkDG2y7si/uF1P8WBIE9cd0L3CGngjIAVTHUuEGk4s3L/dMmUjP2jbO1oliKdJ26CGjgNRRTURCRRTZkyhbq6ugNue/LJJzn22GNdqkgkzlnrrKU6eBSs6qCRsdo9n79vjzwnhOX0d8JGzoD913MGQHY/rflpD2PAd4xzmXS9q6Ws3LaHh98s4eLjB/LFkT5Xazms5BRn2mz/8XDif7ldjbQiLoJakW9/i/5ThqvDjIi0n7U25qdOL1myxO0ScGs6vUjUWQs15QeNgn120IjYdmhoZY18ls8JXLlDndGJpvDVHMT6OyeJlrhTH2rk1rkryM9K444Zo90uR2JcXAS13p40cjJS1KJfRDokIyOD8vJy8vPzYz6suclaS3l5ORkZWmAuMaZsnXNOql3rDwxl4QNHqDFJzkhXTn/oM9ppdNFyFCynP3j6ampiAnt4UQlrPtvLI1+dRM/MbjLlUWJWXAQ1YwxFPg8lAXV+FJH2GzhwIKWlpZSVlbldSszLyMhg4MCBbpchcmSVW2Dl3+HTvzsnhsY4rc5zBjhtx0e1HAUbADn9nJEyNVSQQ1i7Yy8PvFHMzHH9OWN0H7fLkTgQN39tCr0eFq3XhywRab/U1FSGDh3qdhki0tmCZbD6n/DpXNj6vnPbgEkw/Zcw5kLI1odr6ZhQuJFbn19BTkYqP505xu1yJE7ET1DzeXj+g1L27GugZw8NNYuIiAjOuaTWvuSEsw2LnBMce0fBl26HsRdDnr6kkaP3yNsb+XTbHh688njysjT1VaIjboJaUYvOj8cPznW5GhEREXFNwz4oXuiEs/ULnLVmvQbDtJvh2Eugj0Y8JHr8gSC/eW09Z4/ty7nH9XO7HIkjcRPUCiOdH0sCCmoiIiIJJxyCjYuccLbmJedEvlk+mDgLjv0KDJyk80JJ1IUbLbfO/YTMtGTuPn+s2+VInImboDYotwdpyUmUlKmhiIiISEJobITSpfDp87Dqn85Jo9N7wujznZGzIaeo+Yd0qife3chHWyr57WXj8Wanu12OxJm4+euVkpzEkN6Z+ANq0S8iIhK3rIUdn8LKubDyH7BnK6RkwMizYewlTsv8FH1gjpaGcCO7a+qpqN5/2V1dT3l1PbUNjVw1ZTCD8jLdLtMVm3ZVc9/CdXx5lI/zx/d3uxyJQ3ET1MDp/LhuR5XbZYiIiEi0lZdE2unPhV3rICkFCr/kNAU55hxIz3a7wm7PWkuwLnRA6Gq+1NRTEaz/XCjbWxs65OMlGfjXJ9t57htTGdArsU7g3dho+cHfV5CanMTPLzhW5+CUThFXQa3I52Hh6p3UhxpJS0lyuxwRERE5Gns/g1X/cMLZ9g+d2wqmwZSvw+gLICvf3fpcdrjRruafNfWURwLY7uoG6sONrT5WarIhLyuNvKx08rJSOTa3F3mZqeRmpZGflUZuVlpku3PJzUxj3Y4qrnjkfa565H2e+/pUfDmJc7L7p5ZsZunGCn51yXH07Zk4z1u6VlwFtUKvh3CjZXN5NcP76Js1ERGRmFNTAatfdEbPNr0DWOg3Ds78OYy5CHoOcLvCLlNTH+LNdWV8XFrZ7tGunIwU8j3p5GamMjA3k+MG9mwOYbmZaeR7nLCVn5VOblYqnvSUdo8KjR3Qk79cN5lrHlvCVY8u4dnZJ5Lvif9pp1srarj3lbV8YYSXr0wc6HY5EsfiKqgV+fa36FdQExERiRF1QVj3irPuzP86NDZA/nA4bY6z7qx3kdsVdpk9NQ28vnYnr67cwZvry6gLNZKWnOSMYkVGtwbkZjqjXJlp5HnSyMtMIzcrtTl05WamkZrcNTOLJhbk8visE7j28aVc89hSnvnaifTMjN/z2VprmfOPFSQZwy8u0pRH6VxxFdSG9s4CUEMRERGR7i5UD/7XnHC27hVoqIGcAXDiN5xw1m9cwrTTD1TVsnDVThas2sHiknJCjZa+ORlcfsIgzhrbl8lD8kjpouDVEScOy+eRr07ixr8u56tPLOWpGyaTnRGfYe3ZZVt511/OPReOTbh1edL14iqoZaWn0L9nhlr0i4iIdEfWwqa3nXb6q1+E2j3QIw/GXe6Es8FTIan7BpJo2lpRw4JVO3h15Q4+2LIba2FIfiY3njKM6WP7ctyAniQlxU5Q/cIILw9ddTzfeOoDrv/LMv56/WQy0+LqYybbK/dxz8trmDosnytOGOx2OZIA4uv/IJwTX2tETUREpBta+BNY/ACkeeCYc50TUQ87DZLjc/SlJWstxYEgr67cwYJVO1i1fS8Ao/rl8J3TRzB9bF9G9PHE9FS6L4/uw+8un8C3n/mQr/3vch679gQyUpPdLisqrLX86IVPCTdafnnxcTEVoiV2xV9Q83p4bvlWrLUx/cdOREQkrnzwVyeknXAjnPEzSIv/c29Za1lRuodXV+1gwcodbNjlzPiZWJDLj88ZxVlj+jI4P75eh3OP60ddaBy3PP8J3/zbh/zx6olx0Yn77x9uY9G6Mn563ui4+28m3VfcBbUin4ea+jA79tbSr6fmDouIiLhu49vw8veg6Msw/ZeQHHcfP5qFwo0s27SbBauckbPP9tSSnGSYOiyf604eypmj+9AnztvYX3T8QGobGvnRC5/y3898xANXTujWa+yOJLC3lrv/tWCo/WAAACAASURBVIoThuTy1alD3C5HEkjc/aUs9DqdH/2BoIKaiIiI2yo2wHPXQF4hXPJ4XIa0ulCY9/zlvLpyB/9es5OK6nrSU5L4wggv3z9zJKeP8tErM83tMrvUlVMGU9sQ5u6XVnPL859w/6XjSY7B6YLWWn78z5XUhRr51SXjNOVRulTc/bUs9DmdH0sCQU4Z7nW5GhERkQRWuweevtz5/cpnIaOnu/VEUXVdiEXrynh11Q7eWBsgWBfCk57Cl47xMX1sX04d4SUrPe4+ZrXL9ScPpTYU5levriMjJZlfXHRszAWdf634jH+v3smPzxnV3F1cpKvE3V8QryednIwU/GVqKCIiIuKacAievw4qSuCaf0LeMLcrOmqVNfW8tibAqyt38FZxGfWhRvKy0phxXD/OGtuXkwrzSU+Jj+YZ0fLN04qorQ/z+//4yUhN4qczx8RMD4FdwTrufHEl4wf14vqTh7pdjiSguAtqxhgKfR5KAmrRLyIi4pqFP4GS1+G838PQU9yupsN27q1l4aodvLpqB+9vqCDcaOnXM4MrJw9m+ti+TCrIjen1V13hu2eMoDbUyJ/f2kBGajJzzj4mJsLanS+uorouzK8vOS4mp21K7Iu7oAZQ5PXw5voyt8sQERFJTMufgCUPw4nfhInXul1Nu20ur24+x9mHWyoBGNY7i69/wTnH2bEDesZE0OgujDHcdvYx7KsP86dIWPvuGSPcLuuwXvn0M17+9DNuPWskw/tku12OJKi4DGqFPg/Pf1DK3toGcjLi/9wsIiIi3cbGt2D+96HoDKcNf4zYuKuaFz/exqsrd7B2RxUAYwfkcMsZzjnOinyxfY4ztxljuGvmGOpCYX73ejEZqcn812mFbpfVqt3V9dz+4krGDshh9hdif8quxK74DGqRzo8lgSATBue6XI2IiEiCKC+B574a6fD4WMx0eNxaUcM5v3ub2lCYSQW5/ORc5xxng/J0vqxoSkoy/OKi46htaOSXr64lIzWJ66Z1v7Vfd7+0msqaBp68YQqpmtYqLoqNv6DtVOTb36JfQU1ERKQL7KuEZy4HTMx1ePzZS6sB+M8tp6mzXydLTjL8v0vHURcKc9e/VpORmswVkwe7XVaz19fs5IWPtnHz6cMZ1S/H7XIkwcXl1wSDcnuQlpxESZkaioiIiHS6cAjmXg8VG+Gyp2Kqw+OidQEWrt7JTV8qUkjrIqnJSfzhiuP54kgvP3rhU174qNTtkgDYs6+BH73wKcf0zeZbXyxyuxyR+AxqKclJDOmdSYla9IuIiHS+hT92OjzOuB+GTHO7mjZrGtUZ2juLG0/pflPw4llaShIPXz2RqcPyueW5T3h5xWdul8Q9L69mV7CeX18yjrSUuPyILDEmbv8VFno9lAQU1ERE5OgZY6YbY9YZY/zGmDmtbC8wxrxujFlhjFlkjBnYYlvYGPNx5DKvayvvAssfhyV/hKk3wfFfdbuadnnsnY1s3FXNneeN1vnPXJCRmsyj105iYkEuNz/7Ea+t3ulaLW+uL+O55aV8/QvDOHZg7EzblfgW10Ftc0UN9aFGt0sREZEYZoxJBh4EzgZGA1cYY0YftNt9wP9aa48D7gZ+0WLbPmvt+MhlZpcU3VU2vAnzb4XhZ8IZd7tdTbtsr9zHH173c+boPpw20ud2OQkrMy2Fx2edwJj+OXzzbx/ydnHXn16pqraB2/6+giKfh/8+fXiXH1/kUOI2qBX5PIQbLZvLtU5NRESOymTAb63dYK2tB54Fzj9on9HAfyK/v9HK9vjT1OExvwgufgySYmtE6p75a2i0lttnHJy5patlZ6Ty1+snU+jz8LX/Xc6SDeVdevx7X1nLjr21/OqS48hIja1/xxLf4jaoNbfo1zo1ERE5OgOArS2ul0Zua+kT4KLI7xcC2caY/Mj1DGPMcmPM+8aYCw51EGPM7Mh+y8vKun5UoV32VcLTl4FJgiuehYzY6o73rn8XL6/4jG+eVqQW/N1Er8w0nrxhMgNzM7n+L8v4cMvuLjnueyW7+NuSLdxw8lCOV6dw6WbaFNSONDc/ss+lxpjVxphVxpino1tm+w3zOp2b1PlRRES6wPeBU40xHwGnAtuAcGRbgbV2EnAl8FtjTKtn+bXW/tlaO8laO8nr9XZJ0R0SDsHc62D3pkiHx9hqwtEQbuTOeasYlNeDr58aO90pE0FvTzp/u3EKvbPTufbxpazctqdTj1dTH2LO3z9lSH4m3ztjZKceS6QjjhjU2jI33xgzHLgNmGatHQN8pxNqbZes9BT698zAr4YiIiJydLYBg1pcHxi5rZm1dru19iJr7QTgx5HbKiM/t0V+bgAWARO6oObOs+BHUPIfmPGbmOrw2OQv727CHwhy54wxmubWDfXJyeDpr51ITkYq1zy2hHU7qjrtWL96dR1bd9fwq0vG0SNN/xak+2nLiFpb5uZ/DXjQWrsbwFobiG6ZHVPo82jqo4iIHK1lwHBjzFBjTBpwOXBA90ZjTG9jTNN76m3A45Hbc40x6U37ANOA1V1WebQtewyW/inS4fEat6tpt8DeWn772nq+ONLL6aPUQKS7GtCrB09/bQppKUlc9egSNnTCZ7llmyr46+JNXDt1CJOH5kX98UWioS1BrS1z80cAI4wx70bm4E9v7YG6ev59U4t+a22nH0tEROKTtTYE3AQsANYAz1lrVxlj7jbGNHVxPA1YZ4xZD/QB7oncPgpYboz5BKfJyL3W2tgMas0dHs+KuQ6PTf5n/hoawpY7zxuDMcbtcuQwCvKz+NuNJ2Kt5apHl7C1oiZqj13bEOaHc1cwMLcHt56lKY/SfUWrmUgKMBznjeoK4BFjTK+Dd+rq+feFPg/V9WF27K3t9GOJiEj8stbOt9aOsNYWWmvvidx2h7V2XuT3udba4ZF9brTW1kVuf89ae6y1dlzk52NuPo8Oa+rw2HsEXPxozHV4BFiyoZx/frydr586jCG9s9wuR9qgyOfhqRunUFMf5opH3uezPfui8ri/+fd6Nuyq5pcXHUdWekpUHlOkM7QlqB1xbj7OKNs8a22DtXYjsB4nuLmqqKnzY0ANRURERDpk3254+lInnF0Zex0eAUKRBiIDevXgm6cVuV2OtMOofjk8ecNk9tQ0cNUjSwhUHd2X7x9t2c0jb2/gyimDOamod5SqFOkcbQlqR5ybD/wTZzStaQ7+CGBDFOvskEKf842ZP9B5C1FFRETiVrgBnp8FuzfDZX+D3CFuV9QhT76/mbU7qrh9xig1jYhBxw3sxV+uP4Ede2u5+tElVFTXd+hx6kJhfjB3BX1zMrjt7GOiXKVI9B0xqLVxbv4CoNwYsxpnDv6t1tquPVthK7yedLIzUtSiX0REpCNevQ02LILzfgcFU92upkPKquq4f+F6Thnem7PG9HW7HOmgiQV5PHrtJDaX13DNY0vYs6+h3Y/xh9f9FAeC/M9Fx5KdkdoJVYpEV5vWqLVhbr611n7PWjs6Mgf/2c4suq2MMRT5PGrRLyIi0l5LH4Flj8BJ34YJV7ldTYf98tW11IbC/HSmGojEupMKe/OnayayfmcVs55YSrAu1Ob7rty2h4ffLOGSiQM5baQ6fkpsiFYzkW6r0KsW/SIiIu1S8ga88kMYMR2+fJfb1XTYB5t3M/eDUq4/eSiFkXXrEttOG+njgSuPZ0XpHq7/yzL21YePeJ/6UCPff/4T8rPSuP3c0UfcX6S7iPugVuTzEKiqY29t+4fIRUREEs4uPzx/LXhHxmyHR4Bwo+XOeSvpk5POf3/J9f5mEkVnjenLby4bz/JNFcx+cjm1DYcPaw8vKmHtjiruufBYemZqyqPEjrgPaoXNnR81qiYiInJY+3bDM5dBUipc8SykZ7tdUYc9s3QLK7ft5cfnjlYL9jg0c1x/fnnxcbxdvIubnv6Q+lBjq/ut3bGXB94o5vzx/TljdJ8urlLk6CRAUHM6P6qhiIiIyGGEG+C5a6FyC1z2FOQWuF1Rh1VU1/PrBes4cVge5x3Xz+1ypJN8ZdIgfnbBWF5bE+C7//cxofCBYS0UbuTW51fQs0cqPz1vjEtVinRc3H/FNDgvk9Rko4YiIiIih/PqHNj4JlzwcMx2eGzy6wXrCNaFuGvmWDUQiXPXnFhAXUOYn7+8hvSUJO77yjiSkpz/5n9+ewOfbtvDQ1cdT25WmsuVirRf3Ae1lOQkhuRnqaGIiIjIoSx9BJY9CtNuhvFXul3NUVlRWsmzy7Zw/bShjOwbu1M3pe1uPGUYtQ1h7lu4nvTUJP7nwmMpKQvy29eKOefYvpxzrEZVJTbFfVADp6HIup066bWIiMjnlPwn0uHxbDj9TrerOSqNjZbbX1xFflY6N39ZDUQSyU1fGk5tQyMPvOEnPSWZT0oryUpL5q6ZY90uTaTDEiKoFXo9LFy9k/pQI2kpcb8sT0REpG12FcNzs8B7DFz8SMx2eGzy/Adb+WRrJfdfOo4cndA44dxy5gj2NYR57J2NAPzu8vF4s9Ndrkqk4xIjqPmyCDdatlRUU+TTNAgRERFqKuDpyyA5Fa6M7Q6PAJU19fzy1XWcMCSXCycMcLsccYExhp+cO4qM1CSq68LMHNff7ZJEjkpCBLUir/Pm4w8EFdRERETCDc650vZshWv/Bb0Gu13RUbv/3+uprKnnrplT1EAkgRljuPWsY9wuQyQqEiKoDVOLfhEREYe18MoPYONbcMEfYfCJbld01FZt38NT72/mmhMLGN0/x+1yRESiIiEWbGWlp9C/Z4ZOei0iIrL0EVj+OEz7Doy/wu1qjpq1ljteXEVuZhrfO2Ok2+WIiERNQgQ1gEKfB79a9IuISCLzv+6cL23kuTHf4bHJPz7cxgebd/PD6cfQM1MNREQkfiROUPN6KAkEsda6XYqIiEjXK1sPz18HvlFw0Z8hKfY/AuytbeAXr6xl/KBeXDJxoNvliIhEVez/lW6jQp+H6vowO/bWul2KiIhI16qpgGcug5Q0uOIZSPe4XVFU/PbfxZRX13H3+WNISlIDERGJL4kT1JoaigTUUERERBJIc4fHUrj86bjo8AiwbkcVf128ictPGMxxA3u5XY6ISNQlTFAr8jnfHpZonZqIiCQKa2H+rU6Hx5l/gEGT3a4oKpwGIivJzkjhB2epgYiIxKeECWpeTzrZGSn41flRREQSxdI/wwdPwMnfhXGXu11N1Mz7ZDtLNlbw/TNHkpuV5nY5IiKdImGCmjHGaSiiETUREUkE/tecDo/HzIAv3eF2NVETrAvxP/PXMHZADldMjo9pnCIirUmYoAbO9EeNqImISNwrWwfPXw++MXDhn+Kiw2OTP7xezM69ddw1cyzJaiAiInEsfv5yt0Gh10Ogqo69tQ1ulyIiItI5QvXwzBVx1+ERwB8I8tg7G/nKxIFMLMh1uxwRkU6V4nYBXampociGsmrGD1KHKBERiUMpaXDmzyGrN/Qa5HY1UWOt5afzVtEjLZkfnn2M2+WIiHS6BBtRc1r0a/qjiIjEtWPOiZsOj01eXbmDd/y7uOWMEfT2pLtdjohIp0uooDY4L5PUZKOGIiIiIjGkpj7Ez15azTF9s7n6xAK3yxER6RIJFdRSkpMYkp+lETUREZEY8tAbJWzfU8vd548lJTmhPrqISAJLuL92atEvIiISOzbuqubPb23gwgkDmDw0z+1yRES6TMIFtSKfhy3lNTSEG90uRURERA7DWstd/1pFWkoSt6mBiIgkmIQLaoW+LEKNls3l1W6XIiIiIofx2poAi9aV8Z0vD8eXk+F2OSIiXSrxgprXadHvDyioiYiIdFe1DWHu+tcqhvs8XHvSELfLERHpcgl1HjXYH9S0Tk1ERKT7+uObJZTu3sfTN04hVQ1ERCQBJdxfvqz0FPr1zKBEnR9FRES6pa0VNTy8qIRzj+vHSUW93S5HRMQVCRfUwGkoohE1ERGR7unul1aTZAw/OXeU26WIiLgmIYOa06K/Gmut26WIiIhIC2+sC/Dv1Tv59ulF9OvZw+1yRERck6BBLYtgXYide+vcLkVEREQi6kJh7pq3imG9s7jh5KFulyMi4qrEDGq+ps6Pmv4oIiLSXTz69kY2lddw58wxpKcku12OiIirEjKoFanzo4iISLeyrXIff/hPMWeN6cOpI7xulyMi4rqEDGre7HSyM1IU1ERERLqJe15ejbVw+4zRbpciItItJGRQM8ZQ6PVo6qOIiEg38E7xLuZ/uoNvfbGIgbmZbpcjItItJGRQg6bOjwpqIiIibqoPNXLnvJUMzstk9heGuV2OiEi3kbBBrcjnYefeOvbWNrhdioiISMJ64t2NlJRVc+d5o8lIVQMREZEmCRvUCr1ZAGwoq3a5EhERkcS0Y08tv3+9mNOP8XH6qD5ulyMi0q0kbFArirToL9E6NREREVf8z/w1NDRa7jhPDURERA6WsEFtUF4mqckGv9apiYiIdLn3N5Qz75PtfOMLwyjIz3K7HBGRbidhg1pqchIF+VkaURMREeliDeFG7nxxFQN69eC/TityuxwRkW4pYYMaOCe+1oiaiIhI13py8WbW7azi9hmj6ZGmBiIiIq1pU1Azxkw3xqwzxviNMXNa2T7LGFNmjPk4crkx+qVGX6Eviy3lNTSEG90uRUREJCEEqmr5zb/Xc8rw3pw1Rg1EREQO5YhBzRiTDDwInA2MBq4wxrS26vf/rLXjI5dHo1xnpyjyeQg1WjaX17hdioiISEL45SvrqA2F+enMMRhj3C5HRKTbasuI2mTAb63dYK2tB54Fzu/csrpGodfp/OjXOjUREZFO9/HWSv7+YSk3nDys+T1YRERa15agNgDY2uJ6aeS2g11sjFlhjJlrjBnU2gMZY2YbY5YbY5aXlZV1oNzoGhZ5kyjROjUREZFO98baAMbAt75Y6HYpIiLdXrSaifwLGGKtPQ74N/DX1nay1v7ZWjvJWjvJ6/VG6dAd50lPoV/PDHV+FBER6QL+siCDcjPJzkh1uxQRkW6vLUFtG9ByhGxg5LZm1tpya21d5OqjwMTolNf5Cr0ejaiJiIh0Af/OIEU+TXkUEWmLtgS1ZcBwY8xQY0wacDkwr+UOxph+La7OBNZEr8TOVeTzUFJWjbXW7VJERETiVijcyMZd1QxXUBMRaZOUI+1grQ0ZY24CFgDJwOPW2lXGmLuB5dbaecB/G2NmAiGgApjViTVHVaE3i2BdiJ176+jbM8PtckREROLSlooa6sONGlETEWmjIwY1AGvtfGD+Qbfd0eL324Dbolta1yhs0VBEQU1ERKRzFEfWgyuoiYi0TbSaicSspjcMtegXERHpPH4FNRGRdkn4oObNTic7PUUNRURERDqRPxCkb06GOj6KiLRRwgc1YwyFPnV+FBER6Uz+QJDhfTSaJiLSVgkf1MBZp6apjyIiIp2jsdHiD6g1v4hIeyioAYW+LHburaOqtsHtUkREROLOtsp97GsIK6iJiLSDghpQ1Nz5sdrlSkREROKPP7K8YLgv2+VKRERih4IaUBj5hq9E0x9FRKQVxpjpxph1xhi/MWZOK9sLjDGvG2NWGGMWGWMGtth2rTGmOHK5tmsr7x78O9XxUUSkvRTUgMF5maQmGzUUERGRzzHGJAMPAmcDo4ErjDGjD9rtPuB/rbXHAXcDv4jcNw+4E5gCTAbuNMbkdlXt3YU/ECQ/K428rDS3SxERiRkKakBqchIF+VlqKCIiIq2ZDPittRustfXAs8D5B+0zGvhP5Pc3Wmw/C/i3tbbCWrsb+DcwvQtq7laKA1UaTRMRaScFtYhCb5ZG1EREpDUDgK0trpdGbmvpE+CiyO8XAtnGmPw23hcAY8xsY8xyY8zysrKyqBTeHVhrKVbHRxGRdlNQiyjyedhcXkNDuNHtUkREJPZ8HzjVGPMRcCqwDQi35wGstX+21k6y1k7yer2dUaMryqrqqKoNMVxBTUSkXRTUIgq9HkKNls3lNW6XIiIi3cs2YFCL6wMjtzWz1m631l5krZ0A/DhyW2Vb7hvvigNNjUTU8VFEpD0U1CKapmRo+qOIiBxkGTDcGDPUGJMGXA7Ma7mDMaa3MabpPfU24PHI7wuAM40xuZEmImdGbksYTeu/h/fRiJqISHsoqEUMi5xLTQ1FRESkJWttCLgJJ2CtAZ6z1q4yxtxtjJkZ2e00YJ0xZj3QB7gnct8K4Gc4YW8ZcHfktoRRHKgiOyMFX3a626WIiMSUFLcL6C486Sn0zcnQiJqIiHyOtXY+MP+g2+5o8ftcYO4h7vs4+0fYEk7xTqeRiDHG7VJERGKKRtRaKPJ5dNJrERGRKCopC6qRiIhIByioteC06K/GWut2KSIiIjFvd3U9u4L1as0vItIBCmotFPo8BOtCBKrq3C5FREQk5vkjywmGq+OjiEi7Kai1UKSGIiIiIlFTvLOpNb9G1ERE2ktBrYVCtegXERGJmuJAFT1SkxnQq4fbpYiIxBwFtRZ82elkp6doRE1ERCQK/IEghb4skpLU8VFEpL0U1FowxjDM59GImoiISBT4A0GtTxMR6SAFtYMUerMoCVS7XYaIiEhMq6pt4LM9tVqfJiLSQQpqBynyedixt5aq2ga3SxEREYlZJWXOl54KaiIiHaOgdpDCSOfHDWUaVRMREemo4p1VgIKaiEhHKagdpOkNRQ1FREREOs5fFiQ12VCQl+l2KSIiMUlB7SCD8zJJSTJqKCIiInIU/DuDDOvtISVZHzVERDpCfz0PkpqcREF+poKaiIjIUfCXBTXtUUTkKCiotaLI59HURxERkQ6qbQizpaJGQU1E5CgoqLWi0Othc3kNDeFGt0sRERGJORvKqrFWjURERI6GglorinweQo2WzeU1bpciIiISc4oDTsfH4X0U1EREOkpBrRVNLfq1Tk1ERKT9/IEgSQaG9s5yuxQRkZiloNaKYV7njUVBTUREpP38gSAF+VmkpyS7XYqISMxSUGtFdkYqfXMy1FBERESkA4oD6vgoInK0FNQOodCXRUlZtdtliIiIxJSGcCObdlUrqImIHCUFtUMo8nooCQSx1rpdioiISMzYXF5NqNEyXEFNROSoKKgdQqHPQ7AuRKCqzu1SREREYkbxTmfZwHBftsuViIjENgW1Q2ju/Kh1aiIiIm3WtL670KeOjyIiR0NB7RCa5tb71flRRESkzYoDQQb06kFmWorbpYiIxDQFtUPwZafjSU/RiJqIiEg7+NXxUUQkKhTUDsEYQ6HPoxE1ERGRNgo3WkrKgmokIiISBQpqh1HozaIkoBb9IiIibVG6u4a6UCPD+yioiYgcLQW1wyj0etixt5ZgXcjtUkRERLq9pkYimvooInL0FNQOo+mNRuvUREREjqy4Kah51ZpfRORoKagdRnOLfq1TExEROSJ/IIg3O52emalulyIiEvPaFNSMMdONMeuMMX5jzJzD7HexMcYaYyZFr0T3FORnkpJkmqdyiIiIyKEVB9RIREQkWo4Y1IwxycCDwNnAaOAKY8zoVvbLBm4GlkS7SLekJidRkJ+pETUREZEjsNZSoqAmIhI1bRlRmwz4rbUbrLX1wLPA+a3s9zPgl0BtFOtzXaHXQ0mZOj+KiIgcTlPzLTUSERGJjrYEtQHA1hbXSyO3NTPGHA8Msta+fLgHMsbMNsYsN8YsLysra3exbijyedi0q5qGcKPbpYiIiHRbxTubOj6qkYiISDQcdTMRY0wScD9wy5H2tdb+2Vo7yVo7yev1Hu2hu0Sh10Oo0bKlosbtUkRERLotteYXEYmutgS1bcCgFtcHRm5rkg2MBRYZYzYBJwLz4qWhSNMbjhqKiIiIHFpxIEivzFR6e9LcLkVEJC60JagtA4YbY4YaY9KAy4F5TRuttXustb2ttUOstUOA94GZ1trlnVJxFxvmzQLUol9ERORw/IEqhvs8GGPcLkVEJC4cMahZa0PATcACYA3wnLV2lTHmbmPMzM4u0G3ZGan0yUmnJKCGIiIiIq2x1lIcCGrao4hIFKW0ZSdr7Xxg/kG33XGIfU87+rK6lyKfB79G1ERERFpVXl1PZU2DGomIiETRUTcTSQSFXg8bAkGstW6XIiIi0u2okYiISPQpqLVBkc9DVV2IQFWd26WIiIh0O8WRoKaTXYuIRI+CWhsUep03nhJ1fhQREfkc/84qstKS6dczw+1SRETihoJaGzQHNa1TExER+Rx/mdNIRB0fRUSiR0GtDfrkpONJT9G51ERERFpRvDOoRiIiIlGmoNYGxhgKvVmUlKlFv4iISEt79jUQqKpTIxERkShTUGujQp9HI2oiIiIH8auRiIhIp1BQa6NCr4cde2sJ1oXcLkVERKTb8AeqABjeR0FNRCSaFNTaqKmhyAY1FBEREWnmDwRJS0liYG6m26WIiMQVBbU2app7r+mPIiIi+xUHghR6PSQnqeOjiEg0Kai1UUF+JilJRi36RUREWvAHgmokIiLSCRTU2ig1OYmC/EyNqImIiETU1Ico3b1PjURERDqBglo7FHo9atEvIiISURJw3hMV1EREok9BrR0KfR42l1fTEG50uxQRERHX+cucjo+a+igiEn0Kau1Q5PXQELZsqahxuxQRERHXFe8MkpJkKMjPcrsUEZG4o6DWDoWRbwxLtE5NREQEfyBIQX4maSn6OCEiEm36y9oOhV7nG0O/Oj+KiIjgDwQZ7st2uwwRkbikoNYO2Rmp9MlJb148LSIikqjqQmE2lVczvI/Wp4mIdAYFtXZyOj9qRE1ERBLbpl01NFo1EhER6SwKau1U5PNQEghirXW7FBEREdcUB9TxUUSkMymotVOh10NVXYiyqjq3SxEREXGNPxDEGOd9UUREok9BrZ2avjn0q/OjiIgksOJAkEG5mWSkJrtdiohIXFJQa6embw61Tk1ERBKZf2eQ4Zr2KCLSaRTU2qlPTjqe9BRKytT5UUREElMo3MjGXdVanyYi+rLDkAAAIABJREFU0okU1NrJGEOhN0tTH0VEJGFtqaihPtyooCYi0okU1DpALfpFRCSRNX1Z+f/bu/PwKKu7/+PvM5N9IUA2ISEQkrAJAhJAxR1R3EDrbrF1pa7Falu1VSv69Ffb+rhVRWldUeta1D4i4oJbpUJAVDbJwhZAJuyZ7Jmc3x8zCQEDJCHJPZN8Xtc1V2buuWfmy7gcPjnn/h4FNRGR9qOg1gpZKXFs3lWJt6rW6VJERKQDGGMmGmO+N8YUGGNub+L5DGPMfGPM18aYb40xZwSO9zPGVBhjlgZuT3Z89W0vX0FNRKTdhTldQCiqbyhSVOLliPTuDlcjIiLtyRjjBh4HJgDFwCJjzDvW2hWNTrsTeM1aO8MYMwSYA/QLPFdorR3RkTW3twKPl14JUcRHhTtdiohIp6UZtVbITokF1PlRRKSLGAMUWGuLrLXVwCvA5H3OsUC3wP0EYFMH1tfhCjxezaaJiLQzBbVW6JsYS5jLqKGIiEjXkAZsaPS4OHCssXuAKcaYYvyzaTc1ei4zsCTyU2PMcfv7EGPMVGNMnjEmr6SkpI1Kb3t1dVZBTUSkAyiotUK420VGYgyFHrXoFxERAC4BnrPWpgNnALOMMS5gM5BhrR0J3AK8bIzp1tQbWGtnWmtzrbW5ycnJHVZ4S23aVUFFjU9BTUSknSmotVJ2chwFWvooItIVbAT6NHqcHjjW2FXAawDW2gVAFJBkra2y1m4LHF8MFAID2r3idlTfSCQnJd7hSkREOjcFtVbKSolj3bYyanx1TpciIiLtaxGQY4zJNMZEABcD7+xzznpgPIAxZjD+oFZijEkONCPBGNMfyAGKOqzydlCwpT6oaUZNRKQ9Kai1UlZyHDU+y4bt5U6XIiIi7chaWwvcCLwPrMTf3XG5MeZeY8ykwGm3AtcYY74B/glcbq21wPHAt8aYpcAbwLXW2u0d/6doOwUeL4mxEfSIjXC6FBGRTk3t+Vupfm1+gcdL/2T9VlFEpDOz1s7B3ySk8bG7G91fAYxr4nVvAm+2e4EdKN9TquvTREQ6gGbUWql/cn2LfjUUERGRrsFadXwUEekoCmqt1C0qnNRukWrRLyIiXUZJaRW7K2t1fZqISAdQUDsEWclx2vRaRES6jIaOj6nq+Cgi0t4U1A5BfVDzXy8uIiLSudWvItHSRxGR9qegdgiyU+IoraylpLTK6VJERETaXb6nlPioMFLiI50uRUSk01NQOwRZgW6P2vhaRES6gvpGIsYYp0sREen0FNQOQf3Sj0I1FBERkS6gwONVIxERkQ6ioHYIUrtFEhvhVot+ERHp9HaUVbPVW01OihqJiIh0BAW1Q2CMIStFnR9FRKTzq1/mr0YiIiIdQ0HtEGUnx2kvNRER6fTytyioiYh0JAW1Q5SVEsfmXZV4q2qdLkVERKTdFHi8RIe7Sese7XQpIiJdQrOCmjFmojHme2NMgTHm9iaev9YY850xZqkx5gtjzJC2LzU41Xd+LNLyRxER6cTyPaVkpcTicqnjo4hIRzhoUDPGuIHHgdOBIcAlTQSxl621w6y1I4C/AA+2eaVBKjslFkDXqYmISKfm7/ioRiIiIh2lOTNqY4ACa22RtbYaeAWY3PgEa+3uRg9jAdt2JQa3jJ6xuF2GQo86P4qISOdUWlnD5l2Vuj5NRKQDhTXjnDRgQ6PHxcDYfU8yxtwA3AJEACc39UbGmKnAVICMjIyW1hqUIsJc9E2MUUMRERHptOq3oVFQExHpOG3WTMRa+7i1Ngu4DbhzP+fMtNbmWmtzk5OT2+qjHZeVrBb9IiLSedX/MlJBTUSk4zQnqG0E+jR6nB44tj+vAOccSlGhJjsljrXbyqj11TldioiISJvL95QS7jb07RnjdCkiIl1Gc4LaIiDHGJNpjIkALgbeaXyCMSan0cMzgfy2KzH4ZSXHUeOzrN9e7nQpIiIiba5gi5f+SXGEubWrj4hIRznoNWrW2lpjzI3A+4AbeMZau9wYcy+QZ619B7jRGHMKUAPsAH7enkUHm6zk+s6PZfRP1rIQERHpXApKvAztneB0GSIiXUpzmolgrZ0DzNnn2N2N7k9r47pCSlZgzX6Bx8uEIakOVyMiItJ2Kmt8rN9ezjkj0pwuRUSkS9EahjbQLSqclPhINRQREZFOp6ikDGshJ1UrRkREOpKCWhvJTolTi34REel08j2lgDo+ioh0NAW1NlLfot/aLrPXt4iIdAEFHi8uA5lJsU6XIiLSpSiotZGs5FhKK2sp8VY5XYqIiEibKfB46ZsYS2SY2+lSRES6FAW1NpKdEg+g5Y8iItKp5Hu8WvYoIuIABbU2kpWyp0W/iIhIZ1Djq2Pt1jJyFNRERDqcglobOaxbFLERbgo1oyYiIp3Eum1l1NZZzaiJiDhAQa2NGGPISolTi34REek08rf4x7ScwPJ+ERHpOKEb1Dyr4O0bwVfrdCUNspLjNKMmIiKdRv111/XL+0VEpOOEblArWQVfz4IvHnK6kgbZKXFs2lVJWVXwhEcREZHWyvd4SeseTUxEmNOliIh0OaEb1A4/B4aeD5/eD5u/dboawN+iH6BIDUVERKQTKPB4yUnV9WkiIk4I3aAGcMZfISYR3roOap3fv6z+YuuCklKHKxERETk0vjpLYYmX7GQFNRERJ4R2UIvpCWc/CluWwad/droaMnrG4nYZCj2aURMRkdBWvKOcqto6zaiJiDgktIMawMCJMHKK/1q14jxHS4kIc9G3Z4w6P4qISMirbySi1vwiIs4I/aAGcNr/g/jeMPtaqKlwtJSslLiGwU1ERCRU5dcHtWS15hcRcULnCGpRCTD5MdiWDx/d52gpWclxrN1WRq2vztE6REREDkWBx0tKfCQJMeFOlyIi0iV1jqAGkHUSjL4G/vsErP2PY2Vkp8RR47Os317uWA0iIiKHKt/j1bJHEREHdZ6gBjBhOvTo5+8CWeXM8sP6Fv2FatEvIiIhylpLocdLjoKaiIhjOldQi4iFc2bAzvXwwV2OlJAVGNRWbt7tyOeLiIgcqh92V+KtqtWMmoiIgzpXUAPoezQcfQPkPQMFH3X4x3eLCie3bw8en1/AorXbO/zzRUREDlX+lvqOj2okIiLilM4X1ABOvguSBsI7N0HFzg7/+CcvG0Va92iufG4RKzZpZk1EREJLffdi7aEmIuKczhnUwqPg3BlQ+gPMvaPDPz4pLpJZV48lLjKMnz2zkLVbdb2aiIiEjnyPl+4x4STGRjhdiohIl9U5gxpA2ig47hb45mVYNafjP757NLOuGoOvro4pT3/FD7sqO7wGERGR1qhvJGKMcboUEZEuq/MGNYDjfwupw+Df06BsW4d/fHZKPM9fOYYdZdX87Jmv2Fle3eE1iIiItIS1ltWeUjUSERFxWOcOamERcO6TULED5tzqSAlHpHfn7z/PZe22ci5/dhFlVbWO1CEiItIc28qq2Vleo0YiIiIO69xBDeCwoXDi7bB8Nix705ESjslK4m+XjOTb4p38YtZiqmp9jtQhIiJyMA2NRDSjJiLiqM4f1ADG3ey/Zu3dW6F0iyMlnHb4Yfz5vCP4omArv3p1Kb4660gdIiIiB5LvqW/Nr6AmIuKkrhHU3GFwzpNQU+G/Xs06E5IuyO3DnWcOZs53P/D72d9hHapDRERkfwo9XmIj3PRKiHK6FBGRLq1rBDWA5AEw/m5Y/R5880/Hyrj6uP7ccFIWryzawJ/nfu9YHSIiIk3JDzQSUcdHERFndZ2gBjD2Oug7Dt67DXYVO1bGr08dyKVjM3jy00Ke+rTQsTpERET2lb/Fq0YiIiJBoGsFNZcLJj8OdT54+0bHlkAaY7hv8lDOOqIXf3pvFa8uWu9IHSIiIo3tqqjBU1pFTqquTxMRcVrXCmoAPTPh1PugaD7kPeNYGW6X4cELR3D8gGTu+Nd3zF222bFaREREYE/Hx+xkBTUREad1vaAGkHsl9D8J5t0F24scKyMizMWTU45kRJ/u/PKfS/kif6tjtYiIiBTWt+bXjJqIiOO6ZlAzBiY/Bi43vHUD1NU5VkpMRBjPXj6G/smxTJ2Vx9frdzhWi4iIdG35nlIiwlyk94hxuhQRkS6vawY1gIR0OP3PsP5L+GqGs6XEhPPClWNIiovkiucWsXpLqaP1iIhI15Tv8ZKVHIfbpY6PIiJO67pBDWD4JTDwDPhwOpQ42yo/pVsUL141lnC3i8ue/ooN28sdrUdERLqeAo+XHG10LSISFLp2UDMGznoYImJg9rXgq3W0nIzEGGZdNYaKah+XPf0VJaVVjtYjIiJdR3l1LcU7KshWUBMRCQpdO6gBxKfCmQ/CpiXwn4edroZBh3Xj2StG88PuSn7+zEJ2V9Y4XZKIiHQBRSVlAJpRExEJEgpqAEN/AoefC5/cDz9853Q1jOrbkyenjCLfU8rVz+VRUe1zuiQREenk8j3+66M1oyYiEhwU1Oqd8b8Q3QNmXwe11U5Xw4kDU3jwwhEsWredG15eQo3Puc6UIiLS+eVv8RLmMvRNjHW6FBERQUFtj9hEOPsR2PIdfPYXp6sB4Ozhvblv8lA+XuXhN69/Q12ddbokERHppAo8XvolxRIRpr8aiIgEA/3fuLFBZ8DwS+HzB2HjYqerAWDKUX359akDeGvpJqb/eznWKqyJiEjbK/B4yU7WskcRkWChoLaviX+C+MP8SyBrKpyuBoAbTsrmqmMzeX7BOh7+MN/pckREpJOpqvWxbns5OakKaiIiwUJBbV/R3WHS32Dr9/Dx/zhdDQDGGH5/xmDOH5XOIx/l8+x/1jhdkoiIdCJrt5bjq7NqJCIiEkQU1JqSPR5yr4QFj8O6L52uBgCXy3D/T4Zx6pBUpv97BbO/Lna6JBER6STU8VFEJPg0K6gZYyYaY743xhQYY25v4vlbjDErjDHfGmM+Msb0bftSO9iE+6B7Brx1HVR5na4GgDC3i0cvGcnR/RP59evf8tHKLU6XJCLSJTRjHMwwxsw3xnwdGAvPaPTcHYHXfW+MOa1jK2+eAo8XYyBL16iJiASNgwY1Y4wbeBw4HRgCXGKMGbLPaV8DudbaI4A3gOBom3goIuPgnBmwYx18+Aenq2kQFe5m5s9GMaRXN65/aQlfFW1zuiQRkU6tmePgncBr1tqRwMXAE4HXDgk8PhyYCDwReL+gku/x0qdHDFHhQVeaiEiX1ZwZtTFAgbW2yFpbDbwCTG58grV2vrW2PPDwv0B625bpkH7j4KjrYdE/oHC+09U0iI8K57krRpPWI5qrn89j2cZdTpckItKZHXQcBCzQLXA/AdgUuD8ZeMVaW2WtXQMUBN4vqBR6vORo2aOISFBpTlBLAzY0elwcOLY/VwHvNfWEMWaqMSbPGJNXUlLS/CqdNP4uSMyBt2+EyuAJRIlxkbx41Vjio8K4/NmFrNla5nRJIiKdVXPGwXuAKcaYYmAOcFMLXgs4N0bW+uooKinT9WkiIkGmTZuJGGOmALnAX5t63lo701qba63NTU5ObsuPbj/h0XDuk1C6Ceb+zulq9tK7ezSzrh5LnYUp//iKzbuCYzsBEZEu6BLgOWttOnAGMMsY06Ix1qkxcv32cqp9dQpqIiJBpjmDyEagT6PH6YFjezHGnAL8Hphkra1qm/KCRHouHPsrWPoifD/X6Wr2kpUcx/NXjGFXRQ2XPb2Q7WXVTpckItLZNGccvAp4DcBauwCIApKa+VpHFXj8DbNyUuMdrkRERBprTlBbBOQYYzKNMRH4L4p+p/EJxpiRwFP4Q5qn7csMAifcBqlD4d+/hPLtTlezl2HpCfz9Z7ms317OFc8uxFtV63RJIiKdyUHHQWA9MB7AGDMYf1ArCZx3sTEm0hiTCeQACzus8mbIDwS1rORYhysREZHGDhrUrLW1wI3A+8BK/F2tlhtj7jXGTAqc9lcgDnjdGLPUGLPvABb6wiL9XSDLt8GcXztdzY8cnZXIY5eMZNmm3fxiVh5VtT6nSxIR6RSaOQ7eClxjjPkG+CdwufVbjn+mbQUwF7jBWhtU/4Mu9HjplRBFfFS406WIiEgjxlrryAfn5ubavLw8Rz77kHz6V5j/P3DBc3D4uU5X8yNvLi7m1te/YeLhh/HYpSMJc2tPcxFxnjFmsbU21+k6QkVHjpFn/+0LuseEM+uqsR3yeSIisseBxkf9Lb6ljv0V9B4J/3cLeINvled5o9K566whzF3+A7+fvQyngriIiAS/ujpLgcerRiIiIkFIQa2l3GFwzpNQXQb/ngZBGISuOjaTm07O5tW8Ddz/3iqnyxERkSC1aVcFFTU+clLUSEREJNgoqLVGyiD//mrfz4FvXnG6mibdMmEAlx3Vl6c+K2LGJ4VOlyMiIkGovpGIZtRERIKPglprHXU99DkK3rsNdgVVp2UAjDFMn3Q4Zw/vzZ/nruKfC9c7XZKIiASZwvrW/ApqIiJBR0GttVxuOOcJqKuBd24MyiWQLpfhfy8YzgkDkvnd7O9499vNTpckIiJBJH+Ll8TYCHrERjhdioiI7ENB7VAkZsGEe6HwY1j8nNPVNCkizMWTU0ZxZEYPbn71az5bXeJ0SSIiEiTyPaVa9igiEqQU1A5V7lWQeQK8/3vYvsbpapoUHeHmmZ+PJis5jqufz+PvnxXhqwu+GUAREek41vo7PuakKqiJiAQjBbVD5XLB5MfBuODtG6GuzumKmpQQE87L1xzFCQOT+eOclVzy9/+yYXu502WJiIhDSkqr2F1ZS3aygpqISDBSUGsL3fvAxD/Bui9g4VNOV7NfPWMjmHnZKP56/hGs2LSbiQ9/xmuLNmivNRGRLqigvpFIqlrzi4gEIwW1tjJyCuScBh/eA1vzna5mv4wxXJDbh7k3H8ew9AR+++a3XPNCHiWlVU6XJiIiHUit+UVEgpuCWlsxBiY9CmFRMPta8NU6XdEBpfeI4eWrj+Kus4bwWf5WTnv4M+YuU1dIEZGuIt9TSnxUGCnxkU6XIiIiTVBQa0vxh8GZ/wsb8+Bf18DuTU5XdEAul+GqYzN596Zj6d09imtfXMItry5ld2WN06WJiEg7K/B4yUmJwxjjdCkiItIEBbW2NvQ8OPEOWPV/8LdRMP9PUF3mdFUHlJMaz+zrx/HLk7N5+5tNTHzoM/5TsNXpskREpB0VeLxa9igiEsQU1NqaMXDi7XDjIhhwGnx6vz+wff1S0HaEBAh3u7jl1IG8ce3RRIW7+ek/vmL6v5dTWeNzujQREWljO8qq2eqtJidFjURERIKVglp76dEPLngOrpwH3XrD29fDzBNgzedOV3ZAIzN68O4vj+PyY/rx7H/Wcuajn/PNhp1OlyUiIm2ooESNREREgp2CWnvLGAtXfQjnPQ0VO+D5s+CVn8K2Qqcr26/oCDf3TDqcF68aS3m1j5/M+JKHPlhNjS94ZwRFRKT58rcoqImIBDsFtY7gcsGw8/3LIcffDUWfwONjYO4dUL7d6er269icJObefDyThvfmkY/yOW/Glw377oiISOgq8HiJDneT1j3a6VJERGQ/FNQ6Ung0HHcr/PJr/75rXz0Jj46E/86A2mqnq2tSQnQ4D100gid+eiQbtpdz5qOf88wXa6ir0ybZIiKhKt9TSlZKLC6XOj6KiAQrBTUnxKXA2Y/AtV9A75Ew93Z44ihY9S7Y4AxAZwzrxfs3H8+47CTu/b8VTHn6KzburHC6LBERaYVCj1eNREREgpyCmpNSD4fLZsNP3wBXGLxyKTx/Nmxa6nRlTUrpFsXTP8/l/p8M45sNO5n40Ge8ubgYG6ThUkREfqy0soZNuyp1fZqISJBTUHOaMZAzAa770r9ZtmcFzDwR3ro+KDfMNsZw8ZgM3pt2PIN6xXPr699w3YtL2Oatcro0ERFphsIS/96eCmoiIsFNQS1YuMNg9NX+69fG/RK+ez2oN8zOSIzhlalHc8fpg/h4lYfTHv6MD1ZscbosERE5iPqmUDkKaiIiQU1BLdhEJcCEe0Niw2y3y/CLE7J456ZxJMdHcc0Lefz2jW8oraxxujQREdmPfE8pEW4XGT1jnC5FREQOQEEtWIXQhtmDDuvGWzccw/UnZvHG4mJOf+Rzvira5nRZIiLShEKPl8ykWMLc+iuAiEgw0/+lg12IbJgdGebmtxMH8fq1R+N2GS7++3/547srqKzxOV2aiIg0ku/x6vo0EZEQoKAWCkJow+xRfXsy55fHcemYDP7++RomPfYFyzbucrosEREBKmt8rN9erqAmIhICFNRCSYhsmB0bGcYfzx3Gs1eMZmd5Dec8/h8e+zifWl9wXWMnItLVFJWUYS3kpCqoiYgEOwW1UBQiG2afNDCF928+ntOGHsYD81Zz/pMLKCrxOl2WiEiXle8pBdSaX0QkFCiohbIQ2DC7R2wEj196JI9eMpKiEi9nPPo5sxas1SbZIiIOKPR4cRnITIp1uhQRETkIBbVQt78Ns2dfF1QbZk8a3pt5vzqB0f16ctfby/nZMwv5YVel02WJiHQp+R4vfRNjiQxzO12KiIgchIJaZ7HvhtnL3gi6DbMPS4jihSvHcN85Q8lbu4NTH/qUt5du1OyaiEgHUcdHEZHQoaDW2QT5htnGGC47qi9zph1HVkoc015Zyo3//JodZcHTDEVEpDOq8dWxdmsZOQpqIiIhQUGts9rfhtn5H4CvxunqyEyK5fVfHM1vThvI+8t+4NSHP+Put5cxa8FavizcSklplWba9qOyxsf3P5Tyn4KtVNVqnzoRaZ5128qorbOaURMRCRFhThcg7ax+w+zl/4IP74GXzoeIeMg8HrJPhuxT/KHOAWFuFzeclM0JA5L547sr+deSjXirahueT4gOJycljuxGt5zUeHonRGGMcaTmjmKtZcvuKopKvBRuLaOoxEtRSRlFW70U76hoaO6Z1j2am0/J4dyRaYS59XsXEdm/Ao+/625OSrzDlYiISHMoqHUF9RtmDzoTCj6Ego/8t+/f9T/fM8sf2LLHQ79jIaJju4ENTUvgn1OPaggn+Z5SCjxe8j1eCjxe5q3YwiuLNjScHxPh9ge35DiyU/0/c1Lj6dMjOuTCSllVLWu2llHYEMT8oWzN1jLKq/fMlsVEuMlMimVEnx78ZGQ6/ZNjCXe7mPFJIb9541ue/LSQW08dyMTDD8Pl6twhVkRaJ3+LP6hlpajjo4hIKFBQ60rCo2Hw2f6btbCtIBDaPoQlL8DCp8AdARlH+0Nb9imQMsTfWbIDGGM4LCGKwxKiOC4nea/ntnmrKPB4KSjxkr/FS2GJly8Lt/Gvrzc2nBPhdtE/OZaslLiGmbiclHj6JcU42uHMV2fZtLOiURgL/Cwp44fdezpfGuOfIeufHMfofj3JSo6lf3Ic/ZNjOaxb07OIpw89jPeX/8AD81Zz/UtLGJrWjd+cNojjc5I6/ayjiLRMvsdLWvdoYiI09IuIhALj1HVAubm5Ni8vz5HPlibUVML6Bf7QVvixv80/QHwvyDrZH9z6nwQxPZ2tcx+7K2soDMy81d/yPV427ChvWB7odhn69oz5UYDLSolt07+w7CqvobAhhO0JZWu3lVNdu6eRS7eosIYAlpUcR/8kfyDrmxhDVHjrAqWvzvLW1xt56MPVFO+oYExmT35z2kBG9wuuf17SdRljFltrc52uI1S0xxh5xiOfk9ItkueuGNOm7ysiIq13oPFRv1YTv/AoyDrJfwPYtdEf2Ao+hFXvwtKXAANpo/yhLWu8/77b2X+FukWFMzKjByMzeux1vLLGR2HJjwPc/FUeauv2/HIirXt0ILjVXwMXR3ZyPAkx4U1+Xo2vjnXbyhuWJzaeIdvWqHNlmMuQkRhD/6RYThyY0hDG+ifHkhgb0eazXW6X4bxR6Zw9vDevLFrPox8VcMGTCzhpYDK3njqQoWkJbfp5IhJafHWWwhIvx2QlOl2KiIg0k2bU5ODqfLBxSWC27SPYuBhsnX8rgP4n+kNb9nhISHe60oPyB60yf3DbsvdSyqpGs17J8ZGBa9/iiAxzNVw/tn57Ob5GQS8pLoL+Sf4A1j85tuF+n54xhDt4vVx5dS3Pf7mOJz8tZFdFDWce0YtbJgwgK1nd3sQZmlFrmbYeI9dvK+f4v87nz+cN46LRGW32viIicmg0oyaHxuWGPqP9t5PugPLtUPSJP7QVfAQr3vaflzzIf11b1snQd5x/li7IhLtdZKfEk50Sz8She4776iwbd1RQUFLqD3CBGbjZSzZS7asjMymWwb3iOXNYLzKTAqEsOY6E6KZn3pwWExHGdSdmcenYDP7xeRFPf7GG977bzPmj0pl2ygDSukc7XaKIdKB8TykA2er4KCISMhTUpOViesLQn/hv1oJn5Z7ZtoUzYcFjEBbl7yCZFWhKkpTTYU1JWsMdWKqYkRjDyYNSG45ba7GWkO2kmBAdzq2nDuTnx/TjifmFvPjfdbz19SZ+elQG15+YTXJ8pNMlikgHyA+05tceaiIioUNBTQ6NMZA6xH8b90uoLoO1/9kz2/b+Hf5bQp9AU5JToP8J/mWTIcAYE8z5stmS4iK5++whXHVcJn/7KJ8XFqzj1UUbuHJcJtcc3z9oZwZFpG0UeLykxEfqv3URkRCioCZtKyIWBpzqvwHsWLcntC37Fyx5Howb+owJzLadDL1G+vd6k3aX1j2a+887gmuO789DH6zmsfkFvLBgLdeemMXlx/RT226RTirf49VsmohIiFEzEek4vhrYsHBPcNu81H88JtHf+j/tSEgZDCmHQ1xKUC+V7CyWb9rF/85bzcerPCTFRXLTydlcPKaPo/vOSeekZiIt05ZjpLWWYffM47wj05g+eejBXyAiIh1GzUQkOLjDod84/2383eAtgaL5/uvbij6BZW/sOTe6p3+z7ZTBgdsQSBkE0T32+/bScof3TuCZy0eTt3Y7f3n/e/7wznJmflbEzafk8JMj03GH6LU3h7YJAAAdk0lEQVR5IrLHD7sr8VbVkp2qRiIiIqGkWUHNGDMReARwA/+w1t6/z/PHAw8DRwAXW2vf+PG7iOwjLhmOuNB/A39w86zwNyep//nNK1Bduuc18b3918M1hLfBkDQQImKc+TN0Ern9evLq1KP4PH8rf33/e37zxrc89VkRt04YwMShh7X5vm8i0nHytwQaiWh7DpFOpaamhuLiYiorK50uRZohKiqK9PR0wsObf63wQYOaMcYNPA5MAIqBRcaYd6y1Kxqdth64HPh1iyoWaSwuGeJO8DcbqWct7CoOhLfle0Lcms/BVxU4yUDPzEYzcEP8t8Qs/yyeNIsxhuMHJHNcThLvL/+BB+at5rqXljAsLYFfnzaQ43OSFNhEQlBBoONjTqqCmkhnUlxcTHx8PP369dP4HOSstWzbto3i4mIyMzOb/brmzKiNAQqstUUAxphXgMlAQ1Cz1q4NPFfX1BuItJox0L2P/1bfoATAVws71uw9A7dlBXw/x78ZN4ArHJIG7L18MnUIJGSoeckBGGOYOLQXE4Ycxltfb+ShD1fz82cWMiazJ785bSCj+/V0ukQRaYF8j5fuMeEkxkY4XYqItKHKykqFtBBhjCExMZGSkpIWva45QS0N2NDocTEwtkWfEmCMmQpMBcjIyGjNW4j4ucP8e7Ml5cCQyXuO11TC1tV7L5/csHDv69/CY/3XuzVePpkyBOJS1cCkEbfLcN6odM4e3ptXFq3n0Y8KuODJBZw0MJlbTx3I0LTQ2GJBpKsr9HjJSYnTX+ZEOiH9dx06WvPPqkObiVhrZwIzwd/RqiM/W7qI8CjodYT/1ljlbihZtfcM3Or34esX95yjBiZNighz8bOj+3H+qHSe/3IdT35ayFl/+4Izj+jFLRMGkKXrXkSClrWW1Z5STh/ay+lSRESkhZoT1DYCfRo9Tg8cEwkdUd38e7f1GbP3cW8JlKz0L5s8UAOTlEGQPHhPiEseCJFdq4NaTEQY152YxaVjM/jH50U8/cUa3vtuM+ePSmfaKQNI6x7tdIkhwVqLtVBnLXWBnwCRYS79ZlTa3LayanaW12gPNRGRENScoLYIyDHGZOIPaBcDl7ZrVSIdJS7Zf8s8fs+xHzUwCczErXsaaht1VkrICAS4QXtm37pAB8qE6HBuPXUgPz+mH0/ML+TF/67jra838dOjMrjhpGyS4iLb/DNrfHVU1PiorPZRXu2josb/s7LGR0W1j/LAc/XHK2r8z5VX11JRXddwv7Kmjrq9gpI/LNlGoWnP4z3H9jq/roXn7/P++9u6ckBqHBfm9uGckWnt8h1K19TQSERBTUTa2M6dO3n55Ze5/vrrW/S6M844g5dffpnu3bu3U2Wdx0GDmrW21hhzI/A+/vb8z1hrlxtj7gXyrLXvGGNGA7OBHsDZxpjp1trD27VykfayvwYmdT7YsdYf4EpWBgLcSv8ecL7q+hdDj36NZt4GBwLcAAjrXH/5ToqL5O6zh3DVcZk8+mE+LyxYx6uLNnDluEzGD06hsqY+IPmDU0WNj4pAcGq43zhw1Z9b7dvrdZU1Pmp8LV8pHR3uJjrCvdfPyDAXbpfB7TKEuwwuYzDG4DLgCvzc+7HBNHruR+e7Wnh+w/sHjrn85/t8lo+/9/A/767k/vdWccrgVC7ITeeEAcmEudX4RlovPxDUNKMm0rlN//dyVmza3abvOaR3N/5w9v7/Or9z506eeOKJHwW12tpawsL2HzHmzJnTZjW2h4PV35GaVYW1dg4wZ59jdze6vwj/kkiRzsvl9rf8T8yCwWftOe6rhe1F/lm3kkB486z0XwNnff5zjBt69g80MRkSmIUbDInZIb+FQFr3aP58/hFMPaE/D32wmsfmF/DY/IIDviYizEVMfYhqFKTiIsNIjov8UcBquB94HBPhJiq8/n4Y0REuourvBwKZK8Q2675pfA75W0p5fXEx/1pSzNzlP5ASH8lPjkzngtx0XQsorVLo8RIb4aZXQpTTpYhIJ3P77bdTWFjIiBEjCA8PJyoqih49erBq1SpWr17NOeecw4YNG6isrGTatGlMnToVgH79+pGXl4fX6+X000/n2GOP5csvvyQtLY23336b6OimL6X4+9//zsyZM6muriY7O5tZs2YRExPDli1buPbaaykqKgJgxowZHHPMMbzwwgs88MADGGM44ogjmDVrFpdffjlnnXUW559/PgBxcXF4vV4++eQT7rrrrmbVP3fuXH73u9/h8/lISkrigw8+YODAgXz55ZckJydTV1fHgAEDWLBgAcnJyYf0HRu7v3U47Sw3N9fm5eU58tkiHaK2CrYVBGbgGgW4HWv23kIgMXufADfEvy+cy+1s/a2Uv6WU4h0V/iAV4W4IZFGNApY7xEJUR6vx1TF/lYfX8oqZ/70HX50lt28PLsztw5lH9CI2Mjh+09cSxpjF1tpcp+sIFW01Rv70H//FW+Xj7RvGtUFVIhJMVq5cyeDBgx37/LVr13LWWWexbNkyPvnkE84880yWLVvWsE/Y9u3b6dmzJxUVFYwePZpPP/2UxMTEvYJadnY2eXl5jBgxggsvvJBJkyYxZcqUJj9v27ZtJCYmAnDnnXeSmprKTTfdxEUXXcTRRx/NzTffjM/nw+v1UlxczLnnnsuXX35JUlJSQy0HCmrNqb+uro4jjzySzz77jMzMzIZzpk+fTkJCAjfffDPz5s3jqaee4s033/zRn6Gpf2YHGh9Db7QXCRVhkZB6uP/WWE1FYAuBVYEllCth4xJYPnvPOe7IRnvANWpk0r2vc3vAWetf/llXA74aqKv1//RVB47VQl0NOb4acpLjISG90y337CjhbhenHn4Ypx5+GJ7SSmYv2chreRv47Zvfcs+/l3PWEb24MLcPo/r2UAMSOaD8LV6Oyzm03+iKiDTHmDFj9trM+dFHH2X2bP/fbTZs2EB+fn5D0KqXmZnJiBEjABg1ahRr167d7/svW7aMO++8k507d+L1ejnttNMA+Pjjj3nhhRcAcLvdJCQk8MILL3DBBReQlJQEQM+eB98Dtjn1l5SUcPzxxzecV/++V155JZMnT+bmm2/mmWee4Yorrjjo5zWHgppIRwuPhl7D/bfGqryw9fs9zUtKVsG6L+G71xq9NiYQ4IZAUjYYV0NA8oenmn0e1zY63sTjg75mn/duEePfm657H39oS+gD3TP8PxPS/cejtBfbwaTER/GLE7KYenx/lqzfyet5G/j3N5t4La+Y/kmxnJ+bznlHppPaTUvbZG+7KmrwlFaRk6plsyLS/mJjYxvuf/LJJ3z44YcsWLCAmJgYTjzxRCorK3/0msjIPb/QdbvdVFRU7Pf9L7/8ct566y2GDx/Oc889xyeffNLiGsPCwqir869qqquro7q6uuG51tRfr0+fPqSmpvLxxx+zcOFCXnrppRbX1mS9bfIuInLoIuMgbZT/1ljlLij5fs/SyZKVUPgxfPPy3ue5wvxLKd3h/vvu8MDj/R0Ph7Cops9rfM6+r9nvezd6XLkLdm3w33ZugM3fwKp3GzVdqf8zJ+wJbQl9GoW6DP/92BTnZhCDjDGGUX17MKpvD+4+ewhzvvuB1/I28Je53/PA+99z4sAULsztw8mDUogI03cmezo+Zuv6RhFpB/Hx8ZSWljb53K5du+jRowcxMTGsWrWK//73v4f8eaWlpfTq1Yuamhpeeukl0tLSABg/fjwzZszYa+njySefzLnnnsstt9xCYmJiwxLFfv36sXjxYi688ELeeecdamqa/iX0/uo/6qijuP7661mzZs1eSx8Brr76aqZMmcJll12G2902l68oqIkEu6iEpveAqy4DzJ7wFOxL4OrqoKwkEN7WB4JcsT/I7doA6xf4A15j7gjolhYIcBn7zM718T/XBZdXxkSEcf6odM4flc6arWW8sXgDbywu5toXPSTGRnDuyDQuyO3DwMO61l5/srfC+tb8mlETkXaQmJjIuHHjGDp0KNHR0aSmpjY8N3HiRJ588kkGDx7MwIEDOeqoow758+677z7Gjh1LcnIyY8eObQiJjzzyCFOnTuXpp5/G7XYzY8YMjj76aH7/+99zwgkn4Ha7GTlyJM899xzXXHMNkydPZvjw4UycOHGvWbTG9ld/cnIyM2fO5Cc/+Ql1dXWkpKTwwQcfADBp0iSuuOKKNlv2CGomIiLBpHL3nlm4xjNyu4r990t/ABr/P6vx8sr6JZVdc3mlr87yWX4Jr+dt4IMVW6jxWYb36c6FuemcPbw33aKc7S6qZiIt0xZj5B/fXcELC9ax4t6JauAj0gk53UxE9paXl8evfvUrPv/88/2eo2YiIhK6orpBVBMNWOrVVsHujXvPxNX/3LwUVv1f08sr62fiuvWGiDj/tX4RMYGfsfv8jIHwWP+1hPXHwiKDfsbS7TKcNDCFkwamsL2smre+9jcg+f3sZdz77xWcMawXF+Smc1RmYshtXSCtk+/x0j85TiFNRKSd3X///cyYMaPNrk2rp6AmIqEjLNK/H13P/k0/f7DllcWL/EtGa/d/QXCTjMsf3vYKd9FNB7z6c5o6tte5jY618VYMPWMjuPLYTK4Y149lG3fzWt4G3lq6kdlfb6RPz2guGNWH80alk9a96b1qpHMo8Hg5MqOH02WIiLTIDTfcwH/+85+9jk2bNq1NlxS2tdtvv53bb7+9zd9XQU1EOg+XC+JT/bf0A6yyq/NBTbl/q4TqMv/96nKoKQv8LA8cr2ji2D7nlm//8Tn1G503lztyzxLO+qWb3ffpktmKa/GMMQxLT2BYegK/P3Mw7y//gdfzinnwg9U89OFqjs1O4sLcPkwYkkpUeGju2ydNK6+upXhHBRfm9nG6FBGRFnn88cedLiFoKKiJSNfjckNkvP/W1qz1L7+sD3X7DYP1Pyug2gveLf5ZwDWfQ+mmPZuiA2Ag/rA9Wxw0dMnsu+d+RMwBy4oKdzN5RBqTR6SxYXs5by4p5vW8Ym7659ckRIdzzojeXJDbh6FpXeOavs6uqKQMgJwUNRIREQlVCmoiIm3JGP/sV1gkcPANNpvkq/Ffi7ez0RLOnRtg5zrYmAcr3v7xvnYxSY0CXEajmbmMHzVV6dMzhptPGcAvT85hQdE2XsvbwD8XbeD5BesY0qsbF+amM3lEGj1iI1r/PXQyxpiJwCOAG/iHtfb+fZ5/CDgp8DAGSLHWdg885wO+Czy33lo7qb3rzff4u6Gp46OISOhSUBMRCTbucOjRz39rSp3P3wGzcYCrv+9ZCfnzfnwdXmTCntAWCHGu7n0Y1z2DcWdncO/Zh/POd5t5PW8D9/x7Bf9vziomHJ7Khbl9ODY7qUs3pDDGuIHHgQlAMbDIGPOOtXZF/TnW2l81Ov8mYGSjt6iw1o7oqHoB8rd4CXMZ+iY23XpaRESCn4KaiEiocbkhIc1/y2hibxproWxrYDZuvf9nfUOVHWv9yyur996kNCE8hsu6Z3BZ9z7sSEll8a5ufJgfwZMrEznyjqnEx0R1zJ8tOI0BCqy1RQDGmFeAycCK/Zx/CfCHDqqtSQUeL/2SYgl3a/NzEWkfO3fu5OWXX+b6669v8Wsffvhhpk6dSkzMgZftd3UKaiIinY0xEJfsv6WP+vHz1kLlzr0D3M71Dcsse2zM45SKHZwC2LAwTNQNHf5HCDJpwIZGj4uBsU2daIzpC2QCHzc6HGWMyQNqgfuttW+1V6H1CjxeBqRqw3MRaT87d+7kiSeeaHVQmzJlSlAEtdraWsLCgjMSBWdVIiLSfoyB6B7+W6/hTZ9T5YVdGzDeLW2+fUAndzHwhrV7tf7sa63daIzpD3xsjPnOWlu47wuNMVOBqQAZGRmHVMTfLh2JoesuVxXpct67HX747uDntcRhw+D0+/f79O23305hYSEjRoxgwoQJpKSk8Nprr1FVVcW5557L9OnTKSsr48ILL6S4uBifz8ddd93Fli1b2LRpEyeddBJJSUnMnz+/yfe/7rrrWLRoERUVFZx//vlMnz4dgEWLFjFt2jTKysqIjIzko48+IiYmhttuu425c+ficrm45ppruOmmm+jXrx95eXkkJSWRl5fHr3/9az755BPuueceCgsLKSoqIiMjgz/96U9cdtlllJX5GzE99thjHHPMMQD8+c9/5sUXX8TlcnH66adzzTXXcMEFF7BkyRIA8vPzueiiixoetyUFNRER+bHIOEgZ7L/JRqBxn/v0wLGmXAzsNQVprd0Y+FlkjPkE//VrPwpq1tqZwEyA3NxceygFH95b3TtFpH3df//9LFu2jKVLlzJv3jzeeOMNFi5ciLWWSZMm8dlnn1FSUkLv3r159913Adi1axcJCQk8+OCDzJ8/n6SkpP2+/x//+Ed69uyJz+dj/PjxfPvttwwaNIiLLrqIV199ldGjR7N7926io6OZOXMma9euZenSpYSFhbF9+/aD1r9ixQq++OILoqOjKS8v54MPPiAqKor8/HwuueQS8vLyeO+993j77bf56quviImJYfv27fTs2ZOEhASWLl3KiBEjePbZZ9ttjzcFNRERkQNbBOQYYzLxB7SLgUv3PckYMwjoASxodKwHUG6trTLGJAHjgL90SNUi0nUcYOarI8ybN4958+YxcqS/j5LX6yU/P5/jjjuOW2+9ldtuu42zzjqL4447rtnv+dprrzFz5kxqa2vZvHkzK1aswBhDr169GD16NADdunUD4MMPP+Taa69tWMLYs+fBuy5PmjSJ6OhoAGpqarjxxhtZunQpbreb1atXN7zvFVdc0bBEs/59r776ap599lkefPBBXn31VRYuXNjsP1dLKKiJiIgcgLW21hhzI/A+/vb8z1hrlxtj7gXyrLXvBE69GHjFWtt4Nmww8JQxpg5w4b9GbX9NSEREQpK1ljvuuINf/OIXP3puyZIlzJkzhzvvvJPx48dz9913H/T91qxZwwMPPMCiRYvo0aMHl19+OZWVlQd93b7CwsKoq/PvS7rv62Nj93TFfeihh0hNTeWbb76hrq6OqKgDN9A677zzmD59OieffDKjRo0iMTGxxbU1h9pBiYiIHIS1do61doC1Nsta+8fAsbsbhTSstfdYa2/f53VfWmuHWWuHB34+3dG1i4i0h/j4eEpL/R2ETzvtNJ555hm8Xi8AGzduxOPxsGnTJmJiYpgyZQq/+c1vGq7javzapuzevZvY2FgSEhLYsmUL7733HgADBw5k8+bNLFq0CIDS0lJqa2uZMGECTz31FLW1tQANSx/79evH4sWLAXjzzTf3+3m7du2iV69euFwuZs2ahc/nv8x4woQJPPvss5SXl+/1vlFRUZx22mlcd9117bbsERTURERERESkhRITExk3bhxDhw7lgw8+4NJLL+Xoo49m2LBhnH/++ZSWlvLdd98xZswYRowYwfTp07nzzjsBmDp1KhMnTuSkk05q8r2HDx/OyJEjGTRoEJdeeinjxo0DICIigldffZWbbrqJ4cOHM2HCBCorK7n66qvJyMjgiCOOYPjw4bz88ssA/OEPf2DatGnk5ubidu+/Mdb111/P888/z/Dhw1m1alXDbNvEiROZNGkSubm5jBgxggceeKDhNT/96U9xuVyceuqpbfJ9NsXsvUKj4+Tm5tq8vDxHPltERDqWMWaxtTbX6TpChcZIETmYlStXMniwGj455YEHHmDXrl3cd999zX5NU//MDjQ+6ho1ERERERGRZjr33HMpLCzk448/PvjJh0BBTUREREREHDF27Fiqqqr2OjZr1iyGDRvmUEUHN3v27A75HAU1ERERERFxxFdffeV0CUFLzURE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",
      "text/plain": [
       "<Figure size 1080x504 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_loss_curves(vit_results)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "aDdDMVm8j5gm"
   },
   "source": [
    "### Get all the images from the test path\n",
    "\n",
    "Want to make predictions acrosss the test dataset images and time them on GPU to see if they're faster on GPU or CPU..."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "OlTkRkdyj8Fp",
    "outputId": "21c5c064-4a9f-4286-d409-e4b6498b72ff"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "150"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from pathlib import Path\n",
    "test_image_paths = list(Path(test_dir).glob(\"*/*.jpg\"))\n",
    "len(test_image_paths)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "MFs4wubEksKd",
    "outputId": "6765bd64-9283-492e-e9eb-6af889ffb9a5"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[PosixPath('data/pizza_steak_sushi_20_percent/test/sushi/715227.jpg'),\n",
       " PosixPath('data/pizza_steak_sushi_20_percent/test/sushi/3401466.jpg'),\n",
       " PosixPath('data/pizza_steak_sushi_20_percent/test/sushi/2948087.jpg'),\n",
       " PosixPath('data/pizza_steak_sushi_20_percent/test/sushi/1203702.jpg'),\n",
       " PosixPath('data/pizza_steak_sushi_20_percent/test/sushi/511818.jpg')]"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_image_paths[:5]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "AoZQAC1ZfGBO"
   },
   "source": [
    "### Get function for making predictions and timing them\n",
    "\n",
    "See the source here: https://www.learnpytorch.io/09_pytorch_model_deployment/#51-creating-a-function-to-make-predictions-across-the-test-dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "DdbrRRfKk4FZ",
    "outputId": "9c7eb41b-45aa-4327-82dc-9991d7226368"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['pizza', 'steak', 'sushi']"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "class_names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 36
    },
    "id": "l6I_Dz5Ak8TW",
    "outputId": "4106f906-7809-425d-91ec-8421982f50b2"
   },
   "outputs": [
    {
     "data": {
      "application/vnd.google.colaboratory.intrinsic+json": {
       "type": "string"
      },
      "text/plain": [
       "'cuda'"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\"cuda\" if torch.cuda.is_available() else \"cpu\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "ZT_GTmmTezW7"
   },
   "outputs": [],
   "source": [
    "import pathlib\n",
    "import torch\n",
    "\n",
    "from PIL import Image\n",
    "from timeit import default_timer as timer \n",
    "from tqdm.auto import tqdm\n",
    "from typing import List, Dict\n",
    "\n",
    "# 1. Create a function to return a list of dictionaries with sample, truth label, prediction, prediction probability and prediction time\n",
    "def pred_and_store(paths: List[pathlib.Path], \n",
    "                   model: torch.nn.Module,\n",
    "                   transform: torchvision.transforms, \n",
    "                   class_names: List[str], \n",
    "                   device: str = \"cuda\" if torch.cuda.is_available() else \"cpu\") -> List[Dict]:\n",
    "    \n",
    "    # 2. Create an empty list to store prediction dictionaires\n",
    "    pred_list = []\n",
    "    \n",
    "    # 3. Loop through target paths\n",
    "    for path in tqdm(paths):\n",
    "        \n",
    "        # 4. Create empty dictionary to store prediction information for each sample\n",
    "        pred_dict = {}\n",
    "\n",
    "        # 5. Get the sample path and ground truth class name\n",
    "        pred_dict[\"image_path\"] = path\n",
    "        class_name = path.parent.stem\n",
    "        pred_dict[\"class_name\"] = class_name\n",
    "        \n",
    "        # 6. Start the prediction timer\n",
    "        start_time = timer()\n",
    "        \n",
    "        # 7. Open image path\n",
    "        img = Image.open(path)\n",
    "        \n",
    "        # 8. Transform the image, add batch dimension and put image on target device\n",
    "        transformed_image = transform(img).unsqueeze(0).to(device) \n",
    "        \n",
    "        # 9. Prepare model for inference by sending it to target device and turning on eval() mode\n",
    "        model = model.to(device)\n",
    "        model.eval()\n",
    "        \n",
    "        # 10. Get prediction probability, predicition label and prediction class\n",
    "        with torch.inference_mode():\n",
    "            pred_logit = model(transformed_image) # perform inference on target sample \n",
    "            pred_prob = torch.softmax(pred_logit, dim=1) # turn logits into prediction probabilities\n",
    "            pred_label = torch.argmax(pred_prob, dim=1) # turn prediction probabilities into prediction label\n",
    "            pred_class = class_names[pred_label.cpu()] # hardcode prediction class to be on CPU\n",
    "\n",
    "            # 11. Make sure things in the dictionary are on CPU (required for inspecting predictions later on) \n",
    "            pred_dict[\"pred_prob\"] = round(pred_prob.max().cpu().item(), 4)\n",
    "            pred_dict[\"pred_class\"] = pred_class\n",
    "            \n",
    "            # 12. End the timer and calculate time per pred\n",
    "            end_time = timer()\n",
    "            pred_dict[\"time_for_pred\"] = round(end_time-start_time, 4)\n",
    "\n",
    "        # 13. Does the pred match the true label?\n",
    "        pred_dict[\"correct\"] = class_name == pred_class\n",
    "\n",
    "        # 14. Add the dictionary to the list of preds\n",
    "        pred_list.append(pred_dict)\n",
    "    \n",
    "    # 15. Return list of prediction dictionaries\n",
    "    return pred_list"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "xORYjBaRlV-G",
    "outputId": "c88c6ed0-6fb7-4470-c4fa-2b2639735c60"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "ImageClassification(\n",
       "    crop_size=[288]\n",
       "    resize_size=[288]\n",
       "    mean=[0.485, 0.456, 0.406]\n",
       "    std=[0.229, 0.224, 0.225]\n",
       "    interpolation=InterpolationMode.BICUBIC\n",
       ")"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "effnetb2_transforms"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "btrxf2A3lg8i"
   },
   "source": [
    "### Make and time predictions on CPU"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 49,
     "referenced_widgets": [
      "1e97fcc5d26e4a8dbef0d4f341f39f46",
      "3b4eb48ac44e4cdc9310fa04adae8e00",
      "6b4a4941520f4181bff6cd8394cb039f",
      "ef9785a565e24c559819d32c72aa3a82",
      "16f48f6e2af44c45a6c8bf7c62feb80e",
      "f90632431c9e4de7b359b868810c5a7d",
      "ab373d07afb942819cd636173630ba58",
      "a051a4276dc34b12815cd37518213d81",
      "e7bfad97ff2f4042800d5938f5d05113",
      "a9c96bdd52a64bd187368d93885efdfb",
      "3b703b1d4ce24f949fbc49870af349bf"
     ]
    },
    "id": "pmDd_YZ7VSrL",
    "outputId": "729ce303-0fad-4332-e421-29efe8f00192"
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "1e97fcc5d26e4a8dbef0d4f341f39f46",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/150 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Make and time predictions on CPU\n",
    "effnetb2_preds_on_cpu = pred_and_store(paths=test_image_paths, \n",
    "                                       model=effnetb2,\n",
    "                                       transform=effnetb2_transforms,\n",
    "                                       class_names=class_names,\n",
    "                                       device=\"cpu\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 49,
     "referenced_widgets": [
      "fae8ecf2a0774606977f158608ac8866",
      "4a57bee54360480f98bd88aaa8549d0b",
      "a8bab731fc1b41ffb526072144e661cf",
      "f1ffa42e1a954ccf9e8b7eafbf6ee979",
      "76a9c2e5ee364f6ab19cf7ddcd1ef310",
      "c1364b3347f24575a7726165e145a054",
      "8cc7a775f8e142a6b45317cd705c036a",
      "4a79c15365174feea8dc1658133756c5",
      "3cafb6d12ee149e3acedbfa568346e33",
      "607c1f043b7346edb799452c68c9e7b1",
      "f75b9f1386f54a20bb8cd89114647bd6"
     ]
    },
    "id": "YvxcfTlUllwu",
    "outputId": "8283f4c7-2bed-468a-9a12-007e10364857"
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "fae8ecf2a0774606977f158608ac8866",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/150 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Make and time predictions on CPU\n",
    "vit_preds_on_cpu = pred_and_store(paths=test_image_paths, \n",
    "                                       model=vit,\n",
    "                                       transform=vit_transforms,\n",
    "                                       class_names=class_names,\n",
    "                                       device=\"cpu\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "RCHHYBLMli4j"
   },
   "source": [
    "### Make and time predictions on GPU"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 81,
     "referenced_widgets": [
      "95eacc9dbddd4a56a882071b1b96a73d",
      "21362da1989e4a4aa4c84dbac552115f",
      "41b025a486c64cd390339bcfe21fd62a",
      "8fe414cbc5a7495180415c0754c526ec",
      "3f2f13e0559a4fafb4d759970be46bd6",
      "694e8f3018e6426ebe598917a920a3e8",
      "dfe279159de44764b1f52f7ba6c161af",
      "e55a11a7724e475a8249e578083cd3de",
      "20235d0a25b942cbbe3a43b0e79b084e",
      "54ca6b2cd1ac478cb3aa9e09eb87e413",
      "32fc7b9eff2f463a9e28b3aa7369500f",
      "b891ed053df248d1865c95eeaf13fff1",
      "23223f72b27f4f85bc580f5732ae97c0",
      "d86109f9c9e643a3bcf15486c305f635",
      "e857367fa306441ca7ca9579e906e066",
      "ba94ef6625db42208129c71d5f77f950",
      "87046b1dec5f4189b52f517d5aed0614",
      "696eb95e9f224eefa80e8d34841ac798",
      "3f1d000380fd4a2e9cd823acf803883e",
      "272fd9fb794347ab855f544acc3a720c",
      "a70381f756144655b998a514ae83bd38",
      "d88fef0654ba494c840cef7f23c86651"
     ]
    },
    "id": "qBAGto93lpe4",
    "outputId": "fa9d41f5-2121-4d6c-ede8-fd2ffb1ebe94"
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "95eacc9dbddd4a56a882071b1b96a73d",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/150 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "b891ed053df248d1865c95eeaf13fff1",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/150 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Make and time predictions on GPU\n",
    "effnetb2_preds_on_gpu = pred_and_store(paths=test_image_paths, \n",
    "                                       model=effnetb2,\n",
    "                                       transform=effnetb2_transforms,\n",
    "                                       class_names=class_names,\n",
    "                                       device=\"cuda\")\n",
    "\n",
    "vit_preds_on_gpu = pred_and_store(paths=test_image_paths, \n",
    "                                  model=vit,\n",
    "                                  transform=vit_transforms,\n",
    "                                  class_names=class_names,\n",
    "                                  device=\"cuda\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "1SFVUzbYlpLp"
   },
   "source": [
    "### Comparing prediction times on CPU and GPU"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "5eUw-OM6mNei",
    "outputId": "97b3aa32-5f49-4833-cf20-9cfe19e3bc62"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.23287399999999997"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "\n",
    "def get_mean_pred_time(input):\n",
    "  df = pd.DataFrame(input)\n",
    "  return df.time_for_pred.mean()\n",
    "\n",
    "effnetb2_cpu_pred_time = get_mean_pred_time(effnetb2_preds_on_cpu)\n",
    "effnetb2_cpu_pred_time"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 81
    },
    "id": "_Bnjfb4ymyLP",
    "outputId": "daa59808-446a-4f85-b8fa-21d71c36c12c"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "  <div id=\"df-86a647fc-33b9-42a5-8e42-3e472d35bda9\">\n",
       "    <div class=\"colab-df-container\">\n",
       "      <div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>effnetb2_cpu</th>\n",
       "      <th>vit_cpu</th>\n",
       "      <th>effnetb2_gpu</th>\n",
       "      <th>vit_gpu</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.232874</td>\n",
       "      <td>0.538953</td>\n",
       "      <td>0.036263</td>\n",
       "      <td>0.019143</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>\n",
       "      <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-86a647fc-33b9-42a5-8e42-3e472d35bda9')\"\n",
       "              title=\"Convert this dataframe to an interactive table.\"\n",
       "              style=\"display:none;\">\n",
       "        \n",
       "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
       "       width=\"24px\">\n",
       "    <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
       "    <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
       "  </svg>\n",
       "      </button>\n",
       "      \n",
       "  <style>\n",
       "    .colab-df-container {\n",
       "      display:flex;\n",
       "      flex-wrap:wrap;\n",
       "      gap: 12px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert {\n",
       "      background-color: #E8F0FE;\n",
       "      border: none;\n",
       "      border-radius: 50%;\n",
       "      cursor: pointer;\n",
       "      display: none;\n",
       "      fill: #1967D2;\n",
       "      height: 32px;\n",
       "      padding: 0 0 0 0;\n",
       "      width: 32px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert:hover {\n",
       "      background-color: #E2EBFA;\n",
       "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "      fill: #174EA6;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert {\n",
       "      background-color: #3B4455;\n",
       "      fill: #D2E3FC;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert:hover {\n",
       "      background-color: #434B5C;\n",
       "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
       "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
       "      fill: #FFFFFF;\n",
       "    }\n",
       "  </style>\n",
       "\n",
       "      <script>\n",
       "        const buttonEl =\n",
       "          document.querySelector('#df-86a647fc-33b9-42a5-8e42-3e472d35bda9 button.colab-df-convert');\n",
       "        buttonEl.style.display =\n",
       "          google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "\n",
       "        async function convertToInteractive(key) {\n",
       "          const element = document.querySelector('#df-86a647fc-33b9-42a5-8e42-3e472d35bda9');\n",
       "          const dataTable =\n",
       "            await google.colab.kernel.invokeFunction('convertToInteractive',\n",
       "                                                     [key], {});\n",
       "          if (!dataTable) return;\n",
       "\n",
       "          const docLinkHtml = 'Like what you see? Visit the ' +\n",
       "            '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
       "            + ' to learn more about interactive tables.';\n",
       "          element.innerHTML = '';\n",
       "          dataTable['output_type'] = 'display_data';\n",
       "          await google.colab.output.renderOutput(dataTable, element);\n",
       "          const docLink = document.createElement('div');\n",
       "          docLink.innerHTML = docLinkHtml;\n",
       "          element.appendChild(docLink);\n",
       "        }\n",
       "      </script>\n",
       "    </div>\n",
       "  </div>\n",
       "  "
      ],
      "text/plain": [
       "   effnetb2_cpu   vit_cpu  effnetb2_gpu   vit_gpu\n",
       "0      0.232874  0.538953      0.036263  0.019143"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "effnetb2_gpu_pred_time = get_mean_pred_time(effnetb2_preds_on_gpu)\n",
    "vit_cpu_pred_time = get_mean_pred_time(vit_preds_on_cpu)\n",
    "vit_gpu_pred_time = get_mean_pred_time(vit_preds_on_gpu)\n",
    "\n",
    "pred_times = {\"effnetb2_cpu\": effnetb2_cpu_pred_time,\n",
    "              \"vit_cpu\": vit_cpu_pred_time,\n",
    "              \"effnetb2_gpu\": effnetb2_gpu_pred_time,\n",
    "              \"vit_gpu\": vit_gpu_pred_time}\n",
    "\n",
    "pred_times_df = pd.DataFrame(pred_times, index=[0])\n",
    "pred_times_df"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "xt7IzAngnPh_"
   },
   "source": [
    "It looks like the predictions on the GPU are much faster than the CPU overall.\n",
    "\n",
    "And it looks like the ViT model is faster than EffNetB2 on the GPU as well.\n",
    "\n",
    "So potentially if we had access to a GPU in deployment, a ViT model would be better due to having lower latency (prediction time) as well as better performance.\n",
    "\n",
    "But if we're focused on deploying to CPU, EffNetB2 wins because of good performance + faster inference time."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "MBWnDZao9w_5"
   },
   "source": [
    "## Exercise 2. The ViT feature extractor seems to have more learning capacity (due to more parameters) than EffNetB2, how does it go on the larger 20% split of the entire Food101 dataset?\n",
    "\n",
    "* Train a ViT feature extractor on the 20% Food101 dataset for 5 epochs, just like we did with EffNetB2 in section [10. Creating FoodVision Big](https://www.learnpytorch.io/09_pytorch_model_deployment/#10-creating-foodvision-big).\n",
    "\n",
    "Want to download and split whole Food101 dataset into 20% dataset.\n",
    "\n",
    "E.g. instead of training on all ~100,000 images in Food101, only train and test on ~20,000 (to save time experimenting)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "AdtXlrposFRt"
   },
   "source": [
    "### Create ViT feature extractor for Food101\n",
    "\n",
    "Need to get a ViT model capable of fitting on Food101 data (freeze the base layers and update the output layers to work with 101 classes)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "TZsxj0F3qYZj",
    "outputId": "4f4a702e-908c-4bf3-d492-9eede2ec5101"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "======================================================================================================================================================\n",
       "Layer (type (var_name))                                                Input Shape          Output Shape         Param #              Trainable\n",
       "======================================================================================================================================================\n",
       "VisionTransformer (VisionTransformer)                                  [1, 3, 224, 224]     [1, 101]             768                  Partial\n",
       "├─Conv2d (conv_proj)                                                   [1, 3, 224, 224]     [1, 768, 14, 14]     (590,592)            False\n",
       "├─Encoder (encoder)                                                    [1, 197, 768]        [1, 197, 768]        151,296              False\n",
       "│    └─Dropout (dropout)                                               [1, 197, 768]        [1, 197, 768]        --                   --\n",
       "│    └─Sequential (layers)                                             [1, 197, 768]        [1, 197, 768]        --                   False\n",
       "│    │    └─EncoderBlock (encoder_layer_0)                             [1, 197, 768]        [1, 197, 768]        (7,087,872)          False\n",
       "│    │    └─EncoderBlock (encoder_layer_1)                             [1, 197, 768]        [1, 197, 768]        (7,087,872)          False\n",
       "│    │    └─EncoderBlock (encoder_layer_2)                             [1, 197, 768]        [1, 197, 768]        (7,087,872)          False\n",
       "│    │    └─EncoderBlock (encoder_layer_3)                             [1, 197, 768]        [1, 197, 768]        (7,087,872)          False\n",
       "│    │    └─EncoderBlock (encoder_layer_4)                             [1, 197, 768]        [1, 197, 768]        (7,087,872)          False\n",
       "│    │    └─EncoderBlock (encoder_layer_5)                             [1, 197, 768]        [1, 197, 768]        (7,087,872)          False\n",
       "│    │    └─EncoderBlock (encoder_layer_6)                             [1, 197, 768]        [1, 197, 768]        (7,087,872)          False\n",
       "│    │    └─EncoderBlock (encoder_layer_7)                             [1, 197, 768]        [1, 197, 768]        (7,087,872)          False\n",
       "│    │    └─EncoderBlock (encoder_layer_8)                             [1, 197, 768]        [1, 197, 768]        (7,087,872)          False\n",
       "│    │    └─EncoderBlock (encoder_layer_9)                             [1, 197, 768]        [1, 197, 768]        (7,087,872)          False\n",
       "│    │    └─EncoderBlock (encoder_layer_10)                            [1, 197, 768]        [1, 197, 768]        (7,087,872)          False\n",
       "│    │    └─EncoderBlock (encoder_layer_11)                            [1, 197, 768]        [1, 197, 768]        (7,087,872)          False\n",
       "│    └─LayerNorm (ln)                                                  [1, 197, 768]        [1, 197, 768]        (1,536)              False\n",
       "├─Sequential (heads)                                                   [1, 768]             [1, 101]             --                   True\n",
       "│    └─Linear (0)                                                      [1, 768]             [1, 101]             77,669               True\n",
       "======================================================================================================================================================\n",
       "Total params: 85,876,325\n",
       "Trainable params: 77,669\n",
       "Non-trainable params: 85,798,656\n",
       "Total mult-adds (M): 172.54\n",
       "======================================================================================================================================================\n",
       "Input size (MB): 0.60\n",
       "Forward/backward pass size (MB): 104.09\n",
       "Params size (MB): 257.85\n",
       "Estimated Total Size (MB): 362.54\n",
       "======================================================================================================================================================"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Create another ViT feature model instance\n",
    "vit_food101_20_percent, vit_transforms = create_vit_model(num_classes=101)\n",
    "\n",
    "# Print ViT model summary (uncomment for full output) \n",
    "from torchinfo import summary\n",
    "summary(vit_food101_20_percent, \n",
    "        input_size=(1, 3, 224, 224),\n",
    "        col_names=[\"input_size\", \"output_size\", \"num_params\", \"trainable\"],\n",
    "        col_width=20,\n",
    "        row_settings=[\"var_names\"])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "yfhMWkQur5EI"
   },
   "source": [
    "### Create Food101 data transforms \n",
    "\n",
    "Because of the large amount of data, going to use data augmentation to (hopefully) prevent overfitting.\n",
    "\n",
    "See here: https://www.learnpytorch.io/04_pytorch_custom_datasets/#81-how-to-deal-with-overfitting"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "6pyYhCpsn8bI",
    "outputId": "09ac890d-90e1-43c0-96c0-5265a96bb56d"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Compose(\n",
       "    TrivialAugmentWide(num_magnitude_bins=31, interpolation=InterpolationMode.NEAREST, fill=None)\n",
       "    ImageClassification(\n",
       "    crop_size=[224]\n",
       "    resize_size=[256]\n",
       "    mean=[0.485, 0.456, 0.406]\n",
       "    std=[0.229, 0.224, 0.225]\n",
       "    interpolation=InterpolationMode.BILINEAR\n",
       ")\n",
       ")"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Create Food101 training data transforms (only perform data augmentation on the training images)\n",
    "food101_train_transforms = torchvision.transforms.Compose([\n",
    "    torchvision.transforms.TrivialAugmentWide(),\n",
    "    vit_transforms,\n",
    "])\n",
    "\n",
    "food101_train_transforms"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "id": "NFXVZNCzVYgV"
   },
   "outputs": [],
   "source": [
    "from torchvision import datasets\n",
    "\n",
    "# Setup data directory\n",
    "from pathlib import Path\n",
    "data_dir = Path(\"data\")\n",
    "\n",
    "# Get training data (~750 images x 101 food classes)\n",
    "train_data = datasets.Food101(root=data_dir, # path to download data to\n",
    "                              split=\"train\", # dataset split to get\n",
    "                              transform=food101_train_transforms, # perform data augmentation on training data\n",
    "                              download=True) # want to download?\n",
    "\n",
    "# Get testing data (~250 images x 101 food classes)\n",
    "test_data = datasets.Food101(root=data_dir,\n",
    "                             split=\"test\",\n",
    "                             transform=vit_transforms, # perform normal ViT transforms on test data\n",
    "                             download=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "kmuPigfPoOl5",
    "outputId": "20dd7ada-4b6e-49fa-f663-9e9fc556268f"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['apple_pie',\n",
       " 'baby_back_ribs',\n",
       " 'baklava',\n",
       " 'beef_carpaccio',\n",
       " 'beef_tartare',\n",
       " 'beet_salad',\n",
       " 'beignets',\n",
       " 'bibimbap',\n",
       " 'bread_pudding',\n",
       " 'breakfast_burrito']"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Get Food101 class names\n",
    "food101_class_names = train_data.classes\n",
    "\n",
    "# View the first 10\n",
    "food101_class_names[:10]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "9XRxmce1rt1O"
   },
   "source": [
    "### Create Food101 20% data splits\n",
    "\n",
    "Want to split whole Food101 dataset into: \n",
    "* Train set: 20% of whole original Food101 train dataset\n",
    "* Test set: 20% of whole original Food101 test dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {
    "id": "SSJrk250olsV"
   },
   "outputs": [],
   "source": [
    "def split_dataset(dataset:torchvision.datasets, split_size:float=0.2, seed:int=42):\n",
    "    \"\"\"Randomly splits a given dataset into two proportions based on split_size and seed.\n",
    "\n",
    "    Args:\n",
    "        dataset (torchvision.datasets): A PyTorch Dataset, typically one from torchvision.datasets.\n",
    "        split_size (float, optional): How much of the dataset should be split? \n",
    "            E.g. split_size=0.2 means there will be a 20% split and an 80% split. Defaults to 0.2.\n",
    "        seed (int, optional): Seed for random generator. Defaults to 42.\n",
    "\n",
    "    Returns:\n",
    "        tuple: (random_split_1, random_split_2) where random_split_1 is of size split_size*len(dataset) and \n",
    "            random_split_2 is of size (1-split_size)*len(dataset).\n",
    "    \"\"\"\n",
    "    # Create split lengths based on original dataset length\n",
    "    length_1 = int(len(dataset) * split_size) # desired length\n",
    "    length_2 = len(dataset) - length_1 # remaining length\n",
    "        \n",
    "    # Print out info\n",
    "    print(f\"[INFO] Splitting dataset of length {len(dataset)} into splits of size: {length_1} ({int(split_size*100)}%), {length_2} ({int((1-split_size)*100)}%)\")\n",
    "    \n",
    "    # Create splits with given random seed\n",
    "    random_split_1, random_split_2 = torch.utils.data.random_split(dataset, \n",
    "                                                                   lengths=[length_1, length_2],\n",
    "                                                                   generator=torch.manual_seed(seed)) # set the random seed for reproducible splits\n",
    "    return random_split_1, random_split_2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "yve-zgQDpFci",
    "outputId": "bfaf02cd-2847-42d3-80c5-6dfd4f657c51"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[INFO] Splitting dataset of length 75750 into splits of size: 15150 (20%), 60600 (80%)\n",
      "[INFO] Splitting dataset of length 25250 into splits of size: 5050 (20%), 20200 (80%)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "(15150, 5050)"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Create training 20% split of Food101\n",
    "train_data_food101_20_percent, _ = split_dataset(dataset=train_data,\n",
    "                                                 split_size=0.2)\n",
    "\n",
    "# Create testing 20% split of Food101\n",
    "test_data_food101_20_percent, _ = split_dataset(dataset=test_data,\n",
    "                                                split_size=0.2)\n",
    "\n",
    "len(train_data_food101_20_percent), len(test_data_food101_20_percent)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "vUv8YLfnrqoZ"
   },
   "source": [
    "### Create DataLoaders for Food101 20 percent data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "tXThBOJfpROq",
    "outputId": "47f541c0-278e-4579-fc97-e14de76a5a9c"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(474, 158)"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Turn torch Datasets into DataLoaders\n",
    "from torch.utils.data import DataLoader\n",
    "\n",
    "BATCH_SIZE = 32\n",
    "NUM_WORKERS = 2\n",
    "train_dataloader_food101 = DataLoader(train_data_food101_20_percent,\n",
    "                                      batch_size=BATCH_SIZE,\n",
    "                                      shuffle=True,\n",
    "                                      num_workers=NUM_WORKERS)\n",
    "\n",
    "test_dataloader_food101 = DataLoader(test_data_food101_20_percent,\n",
    "                                     batch_size=BATCH_SIZE,\n",
    "                                     shuffle=False,\n",
    "                                     num_workers=NUM_WORKERS)\n",
    "\n",
    "len(train_dataloader_food101), len(test_dataloader_food101)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "3ED6j6HgqMYy"
   },
   "source": [
    "### Train ViT feature extractor on 20% of Food101 data\n",
    "\n",
    "**Note:** The cell below may take 15 mins to run on Google Colab (due to ~15,000 training images and ~5000 testing images)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 138,
     "referenced_widgets": [
      "1650ba7f3c7a4bab89245cadb89937aa",
      "e2efe6b3123e489988806acd74d20f0a",
      "aed7142a2eee4822b96b65e38f703a97",
      "41cbdb7ebcc8475981b9183190470fbf",
      "3bb210096b4a43a7abcaf4ed911d6e00",
      "1578fb055b2b409a9a66b07471aa21c3",
      "98988f14959f4ca49d7af3d9b5929a0c",
      "67080ebd1ca04cf7bdc642a9ea3b0697",
      "9c2aa13be594439f97e7fea01fbb0afb",
      "4cb5a209da54421082b58fa407bc26e9",
      "5c7f60cde457493fa6d8f914accb00c1"
     ]
    },
    "id": "d08a7xh1qPGd",
    "outputId": "63f439b6-4a4a-46d7-8ca5-0f90a3a9697a"
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "1650ba7f3c7a4bab89245cadb89937aa",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/5 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 1 | train_loss: 2.8522 | train_acc: 0.4279 | test_loss: 2.0661 | test_acc: 0.6223\n",
      "Epoch: 2 | train_loss: 2.2204 | train_acc: 0.5925 | test_loss: 1.9251 | test_acc: 0.6677\n",
      "Epoch: 3 | train_loss: 2.0585 | train_acc: 0.6440 | test_loss: 1.8672 | test_acc: 0.7006\n",
      "Epoch: 4 | train_loss: 1.9556 | train_acc: 0.6815 | test_loss: 1.8508 | test_acc: 0.6983\n",
      "Epoch: 5 | train_loss: 1.8884 | train_acc: 0.7013 | test_loss: 1.8293 | test_acc: 0.7090\n"
     ]
    }
   ],
   "source": [
    "# Loss function\n",
    "loss_fn = torch.nn.CrossEntropyLoss(label_smoothing=0.1)\n",
    "\n",
    "# Optimizer \n",
    "optimizer = torch.optim.Adam(params=vit_food101_20_percent.parameters(),\n",
    "                             lr=1e-3)\n",
    "\n",
    "# Train the model\n",
    "set_seeds()\n",
    "vit_food101_20_percent_results = engine.train(model=vit_food101_20_percent,\n",
    "                                              train_dataloader=train_dataloader_food101,\n",
    "                                              test_dataloader=test_dataloader_food101,\n",
    "                                              epochs=5,\n",
    "                                              optimizer=optimizer,\n",
    "                                              loss_fn=loss_fn,\n",
    "                                              device=device)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "aTKbje-e9118"
   },
   "source": [
    "## Exercise 3. Make predictions across the 20% Food101 test dataset with the ViT feature extractor from exercise 2 and find the \"most wrong\" predictions\n",
    "* The predictions will be the ones with the highest prediction probability but with the wrong predicted label.\n",
    "* Write a sentence or two about why you think the model got these predictions wrong.\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 369,
     "referenced_widgets": [
      "dd408b5b110343aface399a3c60ff424",
      "dddf8f6393bb4834aa7df26716849ca0",
      "deb9a344e20d4a29b0e24980ed577395",
      "a152e63878824439bb7f4fc916e80f5b",
      "34b0ac29e4744ec5866c3cf31c2cab57",
      "543117542e0c470c8b38b177669e3dd0",
      "d659122cf5cf463487d84a21b56cea3b",
      "32a191a19773471f872c88468329e4ae",
      "656d68087a7b4e2397ae787e863ee428",
      "52c543fb5696491f955f285bc4187b8d",
      "f908c3aa76b9414795e0a7345ffaa7ca"
     ]
    },
    "id": "R7iKYRAUVkA7",
    "outputId": "dee07ae4-4ae8-4464-e082-53ca79e39a78"
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "dd408b5b110343aface399a3c60ff424",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/5050 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Exception ignored in: <function _MultiProcessingDataLoaderIter.__del__ at 0x7f6fa1cc9d40>\n",
      "Traceback (most recent call last):\n",
      "  File \"/usr/local/lib/python3.7/dist-packages/torch/utils/data/dataloader.py\", line 1510, in __del__\n",
      "    self._shutdown_workers()\n",
      "  File \"/usr/local/lib/python3.7/dist-packages/torch/utils/data/dataloader.py\", line 1493, in _shutdown_workers\n",
      "    if w.is_alive():\n",
      "  File \"/usr/lib/python3.7/multiprocessing/process.py\", line 151, in is_alive\n",
      "    assert self._parent_pid == os.getpid(), 'can only test a child process'\n",
      "AssertionError: can only test a child process\n",
      "Exception ignored in: <function _MultiProcessingDataLoaderIter.__del__ at 0x7f6fa1cc9d40>\n",
      "Traceback (most recent call last):\n",
      "  File \"/usr/local/lib/python3.7/dist-packages/torch/utils/data/dataloader.py\", line 1510, in __del__\n",
      "    self._shutdown_workers()\n",
      "  File \"/usr/local/lib/python3.7/dist-packages/torch/utils/data/dataloader.py\", line 1493, in _shutdown_workers\n",
      "    if w.is_alive():\n",
      "  File \"/usr/lib/python3.7/multiprocessing/process.py\", line 151, in is_alive\n",
      "    assert self._parent_pid == os.getpid(), 'can only test a child process'\n",
      "AssertionError: can only test a child process\n"
     ]
    }
   ],
   "source": [
    "# Loop through test DataLoader (with batch size 1)\n",
    "# Make prediction with model\n",
    "# Store prediction and prediction probability to dictionary\n",
    "# Append dictionary to list\n",
    "# Inspect list\n",
    "\n",
    "# Easy way: set up batch size of 1 of test data loader - from Sali1997s\n",
    "# Create batch size of 1 (predict on 1 image at a time)\n",
    "test_dataloader_food101_batch_size_1 = DataLoader(test_data_food101_20_percent,\n",
    "                                                  batch_size=1,\n",
    "                                                  shuffle=False,\n",
    "                                                  num_workers=NUM_WORKERS)\n",
    "\n",
    "# Prepare model (do this outside the loop)\n",
    "vit_food101_20_percent = vit_food101_20_percent.to(device)\n",
    "vit_food101_20_percent.eval()\n",
    "\n",
    "# Loop through test DataLoader with batch size 1 and make predictions on each image\n",
    "# store predictions and truth values to a dictionary and then append dictionary to list for inspection later\n",
    "vit_food101_pred_list = []\n",
    "for X, y in tqdm(test_dataloader_food101_batch_size_1):\n",
    "  # Send data to target device\n",
    "  X, y = X.to(device), y.to(device)\n",
    "  \n",
    "  # Create empty prediction dictionary (each sample gets a dictionary)\n",
    "  pred_dict = {} \n",
    "\n",
    "  # Make predictions\n",
    "  with torch.inference_mode():\n",
    "    pred_probs = torch.softmax(vit_food101_20_percent(X), dim=1)\n",
    "    pred_labels = torch.argmax(pred_probs, dim=1)\n",
    "    pred_dict[\"pred_prob\"] = torch.max(pred_probs).cpu().numpy()\n",
    "    pred_dict[\"pred_label\"] = pred_labels.cpu().numpy()[0]\n",
    "    pred_dict[\"label\"] = y.cpu().numpy()[0]\n",
    "  \n",
    "  vit_food101_pred_list.append(pred_dict)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "aggsGHYF2Wrv",
    "outputId": "e89209d6-4d74-46a7-a068-344615623344"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['apple_pie', 'baby_back_ribs', 'baklava', 'beef_carpaccio', 'beef_tartare']"
      ]
     },
     "execution_count": 70,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "food101_class_names[:5]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 206
    },
    "id": "oF2kZZTG0KNo",
    "outputId": "d8ea3694-7b41-4d4c-a1fa-980b6589e269"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "  <div id=\"df-b9f55f96-ed52-4636-8db0-6a4ff209ae9c\">\n",
       "    <div class=\"colab-df-container\">\n",
       "      <div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>pred_prob</th>\n",
       "      <th>pred_label</th>\n",
       "      <th>label</th>\n",
       "      <th>is_correct</th>\n",
       "      <th>pred_class</th>\n",
       "      <th>label_class</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.7948435</td>\n",
       "      <td>72</td>\n",
       "      <td>72</td>\n",
       "      <td>True</td>\n",
       "      <td>pancakes</td>\n",
       "      <td>pancakes</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.6136912</td>\n",
       "      <td>57</td>\n",
       "      <td>57</td>\n",
       "      <td>True</td>\n",
       "      <td>hummus</td>\n",
       "      <td>hummus</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.19282873</td>\n",
       "      <td>80</td>\n",
       "      <td>80</td>\n",
       "      <td>True</td>\n",
       "      <td>pulled_pork_sandwich</td>\n",
       "      <td>pulled_pork_sandwich</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.58169764</td>\n",
       "      <td>51</td>\n",
       "      <td>51</td>\n",
       "      <td>True</td>\n",
       "      <td>guacamole</td>\n",
       "      <td>guacamole</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.82304615</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>True</td>\n",
       "      <td>baby_back_ribs</td>\n",
       "      <td>baby_back_ribs</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>\n",
       "      <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-b9f55f96-ed52-4636-8db0-6a4ff209ae9c')\"\n",
       "              title=\"Convert this dataframe to an interactive table.\"\n",
       "              style=\"display:none;\">\n",
       "        \n",
       "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
       "       width=\"24px\">\n",
       "    <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
       "    <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
       "  </svg>\n",
       "      </button>\n",
       "      \n",
       "  <style>\n",
       "    .colab-df-container {\n",
       "      display:flex;\n",
       "      flex-wrap:wrap;\n",
       "      gap: 12px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert {\n",
       "      background-color: #E8F0FE;\n",
       "      border: none;\n",
       "      border-radius: 50%;\n",
       "      cursor: pointer;\n",
       "      display: none;\n",
       "      fill: #1967D2;\n",
       "      height: 32px;\n",
       "      padding: 0 0 0 0;\n",
       "      width: 32px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert:hover {\n",
       "      background-color: #E2EBFA;\n",
       "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "      fill: #174EA6;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert {\n",
       "      background-color: #3B4455;\n",
       "      fill: #D2E3FC;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert:hover {\n",
       "      background-color: #434B5C;\n",
       "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
       "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
       "      fill: #FFFFFF;\n",
       "    }\n",
       "  </style>\n",
       "\n",
       "      <script>\n",
       "        const buttonEl =\n",
       "          document.querySelector('#df-b9f55f96-ed52-4636-8db0-6a4ff209ae9c button.colab-df-convert');\n",
       "        buttonEl.style.display =\n",
       "          google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "\n",
       "        async function convertToInteractive(key) {\n",
       "          const element = document.querySelector('#df-b9f55f96-ed52-4636-8db0-6a4ff209ae9c');\n",
       "          const dataTable =\n",
       "            await google.colab.kernel.invokeFunction('convertToInteractive',\n",
       "                                                     [key], {});\n",
       "          if (!dataTable) return;\n",
       "\n",
       "          const docLinkHtml = 'Like what you see? Visit the ' +\n",
       "            '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
       "            + ' to learn more about interactive tables.';\n",
       "          element.innerHTML = '';\n",
       "          dataTable['output_type'] = 'display_data';\n",
       "          await google.colab.output.renderOutput(dataTable, element);\n",
       "          const docLink = document.createElement('div');\n",
       "          docLink.innerHTML = docLinkHtml;\n",
       "          element.appendChild(docLink);\n",
       "        }\n",
       "      </script>\n",
       "    </div>\n",
       "  </div>\n",
       "  "
      ],
      "text/plain": [
       "    pred_prob  pred_label  label  is_correct            pred_class  \\\n",
       "0   0.7948435          72     72        True              pancakes   \n",
       "1   0.6136912          57     57        True                hummus   \n",
       "2  0.19282873          80     80        True  pulled_pork_sandwich   \n",
       "3  0.58169764          51     51        True             guacamole   \n",
       "4  0.82304615           1      1        True        baby_back_ribs   \n",
       "\n",
       "            label_class  \n",
       "0              pancakes  \n",
       "1                hummus  \n",
       "2  pulled_pork_sandwich  \n",
       "3             guacamole  \n",
       "4        baby_back_ribs  "
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Create DataFrame with various columns\n",
    "pred_df_20_percent = pd.DataFrame(vit_food101_pred_list)\n",
    "\n",
    "# Create a column for if the prediction is correct\n",
    "pred_df_20_percent[\"is_correct\"] = pred_df_20_percent[\"pred_label\"] == pred_df_20_percent[\"label\"]\n",
    "\n",
    "# Create class name columns (e.g. pred_label=72 -> pred_class=\"pancakes\")\n",
    "pred_df_20_percent[\"pred_class\"] = pred_df_20_percent[\"pred_label\"].apply(lambda x: food101_class_names[x])\n",
    "pred_df_20_percent[\"label_class\"] = pred_df_20_percent[\"label\"].apply(lambda x: food101_class_names[x])\n",
    "pred_df_20_percent.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 363
    },
    "id": "2M3SUAsg2NRj",
    "outputId": "faa3253c-663e-40fe-f937-857a6e4954da"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "  <div id=\"df-9168a953-a130-463f-bb12-d54dd41c9a27\">\n",
       "    <div class=\"colab-df-container\">\n",
       "      <div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>pred_prob</th>\n",
       "      <th>pred_label</th>\n",
       "      <th>label</th>\n",
       "      <th>is_correct</th>\n",
       "      <th>pred_class</th>\n",
       "      <th>label_class</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>3107</th>\n",
       "      <td>0.9835638</td>\n",
       "      <td>52</td>\n",
       "      <td>32</td>\n",
       "      <td>False</td>\n",
       "      <td>gyoza</td>\n",
       "      <td>dumplings</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1306</th>\n",
       "      <td>0.9427046</td>\n",
       "      <td>71</td>\n",
       "      <td>44</td>\n",
       "      <td>False</td>\n",
       "      <td>paella</td>\n",
       "      <td>fried_rice</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2848</th>\n",
       "      <td>0.9298615</td>\n",
       "      <td>41</td>\n",
       "      <td>8</td>\n",
       "      <td>False</td>\n",
       "      <td>french_onion_soup</td>\n",
       "      <td>bread_pudding</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>708</th>\n",
       "      <td>0.90341496</td>\n",
       "      <td>9</td>\n",
       "      <td>12</td>\n",
       "      <td>False</td>\n",
       "      <td>breakfast_burrito</td>\n",
       "      <td>cannoli</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1726</th>\n",
       "      <td>0.884879</td>\n",
       "      <td>68</td>\n",
       "      <td>43</td>\n",
       "      <td>False</td>\n",
       "      <td>onion_rings</td>\n",
       "      <td>fried_calamari</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3436</th>\n",
       "      <td>0.8786958</td>\n",
       "      <td>45</td>\n",
       "      <td>58</td>\n",
       "      <td>False</td>\n",
       "      <td>frozen_yogurt</td>\n",
       "      <td>ice_cream</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2287</th>\n",
       "      <td>0.85854447</td>\n",
       "      <td>38</td>\n",
       "      <td>28</td>\n",
       "      <td>False</td>\n",
       "      <td>fish_and_chips</td>\n",
       "      <td>croque_madame</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3209</th>\n",
       "      <td>0.84964484</td>\n",
       "      <td>9</td>\n",
       "      <td>36</td>\n",
       "      <td>False</td>\n",
       "      <td>breakfast_burrito</td>\n",
       "      <td>falafel</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1872</th>\n",
       "      <td>0.84939903</td>\n",
       "      <td>79</td>\n",
       "      <td>37</td>\n",
       "      <td>False</td>\n",
       "      <td>prime_rib</td>\n",
       "      <td>filet_mignon</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1338</th>\n",
       "      <td>0.8450013</td>\n",
       "      <td>15</td>\n",
       "      <td>51</td>\n",
       "      <td>False</td>\n",
       "      <td>ceviche</td>\n",
       "      <td>guacamole</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>\n",
       "      <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-9168a953-a130-463f-bb12-d54dd41c9a27')\"\n",
       "              title=\"Convert this dataframe to an interactive table.\"\n",
       "              style=\"display:none;\">\n",
       "        \n",
       "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
       "       width=\"24px\">\n",
       "    <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
       "    <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
       "  </svg>\n",
       "      </button>\n",
       "      \n",
       "  <style>\n",
       "    .colab-df-container {\n",
       "      display:flex;\n",
       "      flex-wrap:wrap;\n",
       "      gap: 12px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert {\n",
       "      background-color: #E8F0FE;\n",
       "      border: none;\n",
       "      border-radius: 50%;\n",
       "      cursor: pointer;\n",
       "      display: none;\n",
       "      fill: #1967D2;\n",
       "      height: 32px;\n",
       "      padding: 0 0 0 0;\n",
       "      width: 32px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert:hover {\n",
       "      background-color: #E2EBFA;\n",
       "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "      fill: #174EA6;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert {\n",
       "      background-color: #3B4455;\n",
       "      fill: #D2E3FC;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert:hover {\n",
       "      background-color: #434B5C;\n",
       "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
       "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
       "      fill: #FFFFFF;\n",
       "    }\n",
       "  </style>\n",
       "\n",
       "      <script>\n",
       "        const buttonEl =\n",
       "          document.querySelector('#df-9168a953-a130-463f-bb12-d54dd41c9a27 button.colab-df-convert');\n",
       "        buttonEl.style.display =\n",
       "          google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "\n",
       "        async function convertToInteractive(key) {\n",
       "          const element = document.querySelector('#df-9168a953-a130-463f-bb12-d54dd41c9a27');\n",
       "          const dataTable =\n",
       "            await google.colab.kernel.invokeFunction('convertToInteractive',\n",
       "                                                     [key], {});\n",
       "          if (!dataTable) return;\n",
       "\n",
       "          const docLinkHtml = 'Like what you see? Visit the ' +\n",
       "            '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
       "            + ' to learn more about interactive tables.';\n",
       "          element.innerHTML = '';\n",
       "          dataTable['output_type'] = 'display_data';\n",
       "          await google.colab.output.renderOutput(dataTable, element);\n",
       "          const docLink = document.createElement('div');\n",
       "          docLink.innerHTML = docLinkHtml;\n",
       "          element.appendChild(docLink);\n",
       "        }\n",
       "      </script>\n",
       "    </div>\n",
       "  </div>\n",
       "  "
      ],
      "text/plain": [
       "       pred_prob  pred_label  label  is_correct         pred_class  \\\n",
       "3107   0.9835638          52     32       False              gyoza   \n",
       "1306   0.9427046          71     44       False             paella   \n",
       "2848   0.9298615          41      8       False  french_onion_soup   \n",
       "708   0.90341496           9     12       False  breakfast_burrito   \n",
       "1726    0.884879          68     43       False        onion_rings   \n",
       "3436   0.8786958          45     58       False      frozen_yogurt   \n",
       "2287  0.85854447          38     28       False     fish_and_chips   \n",
       "3209  0.84964484           9     36       False  breakfast_burrito   \n",
       "1872  0.84939903          79     37       False          prime_rib   \n",
       "1338   0.8450013          15     51       False            ceviche   \n",
       "\n",
       "         label_class  \n",
       "3107       dumplings  \n",
       "1306      fried_rice  \n",
       "2848   bread_pudding  \n",
       "708          cannoli  \n",
       "1726  fried_calamari  \n",
       "3436       ice_cream  \n",
       "2287   croque_madame  \n",
       "3209         falafel  \n",
       "1872    filet_mignon  \n",
       "1338       guacamole  "
      ]
     },
     "execution_count": 73,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Get top 10 samples that are \"most wrong\", e.g. highest pred_prob but wrong prediction - why??\n",
    "pred_df_20_percent[pred_df_20_percent[\"is_correct\"] == False].sort_values(\"pred_prob\", ascending=False)[:10]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "xx6wDwHZ45r_"
   },
   "source": [
    "Comparing the \"pred_class\" to the \"label_class\" the model is often wrong on samples that are visually similar.\n",
    "\n",
    "For example, gyoza and dumplings look quite the same.\n",
    "\n",
    "The same as paella and fried rice.\n",
    "\n",
    "And onion rings and fried calamari.\n",
    "\n",
    "The model is getting confused on similar looking classes and thus predictions are in the right \"space\" but not necessarily correct compared to the ground truth."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "LH-vHr3m9_oH"
   },
   "source": [
    "## Exercise 4. Evaluate the ViT feature extractor across the whole Food101 test dataset rather than just the 20% version, how does it perform?\n",
    "* Does it beat the original Food101 paper's best result of 56.4% accuracy?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "k-oDd365w4A1",
    "outputId": "6bfad8ba-a61c-43a5-fa17-d1c4ec5481aa"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "25250"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Check length of Food101 test data\n",
    "len(test_data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "czLfR8Pjw9gb",
    "outputId": "9916f6a5-1107-42f9-d582-19d84bf67da4"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "25250"
      ]
     },
     "execution_count": 74,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Turn Food101 test data into DataLoader\n",
    "# Easy way: set up batch size of 1 of test data loader - from Sali1997s\n",
    "# Create batch size of 1 (predict on 1 image at a time)\n",
    "test_dataloader_food101_all_data_batch_size_1 = DataLoader(test_data,\n",
    "                                                           batch_size=1,\n",
    "                                                           shuffle=False,\n",
    "                                                           num_workers=NUM_WORKERS)\n",
    "\n",
    "len(test_dataloader_food101_all_data_batch_size_1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 49,
     "referenced_widgets": [
      "b972c74283244c4580489025f2306921",
      "62c29ae67a5c4f658f74f94caf75abd8",
      "fdaf41692b1b4205bbe2b8570051062f",
      "80e05c26a564402da7e3b52fddc8845f",
      "5b5b28d04c76476fb2bfa4a23bd241cb",
      "d2686785dee340b489781070fd0e4ab8",
      "5d717bf09ecb441e8e61e57d92a623df",
      "eb61d02241d3438fbf44a3e629adfcb6",
      "ba54748f87e840ba9a3fcc8b2f30c135",
      "26bcaf624dd24d68aa15aef3a0866d2d",
      "c7bbdad837be48179a660a2aea18005d"
     ]
    },
    "id": "dWxceTz3VmeB",
    "outputId": "64b278ab-60e3-40ab-c02d-380a7ab19ce5"
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "b972c74283244c4580489025f2306921",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/25250 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Prepare model (do this outside the loop)\n",
    "vit_food101_20_percent = vit_food101_20_percent.to(device)\n",
    "vit_food101_20_percent.eval()\n",
    "\n",
    "# Loop through test DataLoader with batch size 1 and make predictions on each image\n",
    "# store predictions and truth values to a dictionary and then append dictionary to list for inspection later\n",
    "vit_food101_all_test_data_pred_list = []\n",
    "for X, y in tqdm(test_dataloader_food101_all_data_batch_size_1):\n",
    "  # Send data to target device\n",
    "  X, y = X.to(device), y.to(device)\n",
    "  \n",
    "  # Create empty prediction dictionary (each sample gets a dictionary)\n",
    "  pred_dict = {} \n",
    "\n",
    "  # Make predictions\n",
    "  with torch.inference_mode():\n",
    "    pred_probs = torch.softmax(vit_food101_20_percent(X), dim=1)\n",
    "    pred_labels = torch.argmax(pred_probs, dim=1)\n",
    "    pred_dict[\"pred_prob\"] = torch.max(pred_probs).cpu().numpy()\n",
    "    pred_dict[\"pred_label\"] = pred_labels.cpu().numpy()[0]\n",
    "    pred_dict[\"label\"] = y.cpu().numpy()[0]\n",
    "  \n",
    "  vit_food101_all_test_data_pred_list.append(pred_dict)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "CXz9LbxU7bO_",
    "outputId": "a96129b4-6dec-4ae1-8b2f-7101e9da92e6"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True     17852\n",
       "False     7398\n",
       "Name: is_correct, dtype: int64"
      ]
     },
     "execution_count": 82,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Evalaute model on entire test set\n",
    "food101_all_test_data_df = pd.DataFrame(vit_food101_all_test_data_pred_list)\n",
    "food101_all_test_data_df[\"is_correct\"] = food101_all_test_data_df[\"pred_label\"] == food101_all_test_data_df[\"label\"]\n",
    "food101_all_test_data_df.is_correct.value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "JKLQxjhx8EPO",
    "outputId": "a0bffc5d-0d95-44da-c28f-8bf8f8f971fc"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Accuracy of ViT model on all of Food101 test data: 0.707009900990099\n"
     ]
    }
   ],
   "source": [
    "# Calculate accuracy across Food101 all test\n",
    "print(f\"Accuracy of ViT model on all of Food101 test data: {food101_all_test_data_df.is_correct.value_counts()[1] / len(food101_all_test_data_df)}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "ZLcCgRhS-OhV"
   },
   "source": [
    "## Exercise 5. Head to [Paperswithcode.com](https://paperswithcode.com/) and find the current best performing model on the Food101 dataset.\n",
    "* What model architecture does it use?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "pn5VoIvmz7aH"
   },
   "source": [
    "These results are valid as of 26 August 2022:\n",
    "* Looks like EffNetL2 with extra training data performs the best on Food101 - https://paperswithcode.com/paper/sharpness-aware-minimization-for-efficiently-1 (96.18% accuracy)\n",
    "* But Bamboo also looks like it performs the best on another benchmark - https://paperswithcode.com/paper/bamboo-building-mega-scale-vision-dataset \n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "ujfO-mmmHfUZ"
   },
   "source": [
    "## Exercise 6. Write down 1-3 potential failure points of our deployed FoodVision models and what some potential solutions might be.\n",
    "* For example, what happens if someone was to upload a photo that wasn't of food to our FoodVision Mini model?\n",
    "\n",
    "See the deployed FoodVision Mini model here: https://huggingface.co/spaces/mrdbourke/foodvision_mini \n",
    "\n",
    "Problems:\n",
    "1. **Someone uploads a photo that isn't food...**\n",
    "  * Potential solution: train two models, one that classifies images into \"food\" or \"not food\" and if an image is found to be \"not food\" display a message, if it is found to be \"food\", classify it into a certain class.\n",
    "2. **Someone uploads a photo of food but our model doesn't have the capacity to classify that certain class...**\n",
    "  * Potential solutions:\n",
    "    1. Get more data for unknown classes (upgrade the model).\n",
    "    2. Ask someone if the prediction is right/wrong, if it's wrong, track it to a database and update later (active learning - https://en.wikipedia.org/wiki/Active_learning_(machine_learning)).\n",
    "3. **The image quality is poor (food in top left of image rather than center)** \n",
    "  * Potential solution: add guidelines to the camera app to hint at taking a photo with the subject in the middle\n",
    "4. **Multiple foods in one shot**\n",
    "  * Potential solution:\n",
    "    1. Return multiple classification results (e.g. the top 5 classification predication probabilities)\n",
    "    2. Object detection (detect each different food in an image and individually classify them)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "NkHIwxA2Hj7j"
   },
   "source": [
    "## Exercise 7. Pick any dataset from [`torchvision.datasets`](https://pytorch.org/vision/stable/datasets.html) and train a feature extractor model on it using a model from [`torchvision.models`](https://pytorch.org/vision/stable/models.html) (you could use one of the model's we've already created, e.g. EffNetB2 or ViT) for 5 epochs and then deploy your model as a Gradio app to Hugging Face Spaces. \n",
    "* You may want to pick smaller dataset/make a smaller split of it so training doesn't take too long.\n",
    "* I'd love to see your deployed models! So be sure to share them in Discord or on the [course GitHub Discussions page](https://github.com/mrdbourke/pytorch-deep-learning/discussions).\n",
    "\n",
    "This one is a special one!\n",
    "\n",
    "Give a shot for yourself, there's no answer to how you do it, the fun is in trying it out.\n",
    "\n",
    "See section 10 and 11 of 09. PyTorch Model Deployment for examples: \n",
    "* Section 10: https://www.learnpytorch.io/09_pytorch_model_deployment/#10-creating-foodvision-big\n",
    "* Section 11: https://www.learnpytorch.io/09_pytorch_model_deployment/#11-turning-our-foodvision-big-model-into-a-deployable-app"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "BfrMnDgA9Btf"
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "accelerator": "GPU",
  "colab": {
   "authorship_tag": "ABX9TyNlnK/tRso9/X1v//590Cti",
   "collapsed_sections": [],
   "include_colab_link": true,
   "name": "09_pytorch_model_deployment_exercise_solutions.ipynb",
   "provenance": []
  },
  "gpuClass": "standard",
  "kernelspec": {
   "display_name": "Python 3.8.13",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "name": "python",
   "version": "3.8.13"
  },
  "vscode": {
   "interpreter": {
    "hash": "3fbe1355223f7b2ffc113ba3ade6a2b520cadace5d5ec3e828c83ce02eb221bf"
   }
  },
  "widgets": {
   "application/vnd.jupyter.widget-state+json": {
    "1578fb055b2b409a9a66b07471aa21c3": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "1650ba7f3c7a4bab89245cadb89937aa": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_e2efe6b3123e489988806acd74d20f0a",
       "IPY_MODEL_aed7142a2eee4822b96b65e38f703a97",
       "IPY_MODEL_41cbdb7ebcc8475981b9183190470fbf"
      ],
      "layout": "IPY_MODEL_3bb210096b4a43a7abcaf4ed911d6e00"
     }
    },
    "16f48f6e2af44c45a6c8bf7c62feb80e": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "187c5d5bf68643fbbe754554c5ed9143": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "198a73324ffa4478afc64c011df8368c": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_d9c166e1d7d9461eb3d9fe0fa2ced5b1",
       "IPY_MODEL_8025ad7772fb40f69b2fddfd7eab62e6",
       "IPY_MODEL_984c980048f24b2cbfb45df1dc3c9bd7"
      ],
      "layout": "IPY_MODEL_583f6c14fb3b4125a7c4486782fe7a2f"
     }
    },
    "1b7118878ac04c4ab3a5555f59aade61": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "1e97fcc5d26e4a8dbef0d4f341f39f46": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_3b4eb48ac44e4cdc9310fa04adae8e00",
       "IPY_MODEL_6b4a4941520f4181bff6cd8394cb039f",
       "IPY_MODEL_ef9785a565e24c559819d32c72aa3a82"
      ],
      "layout": "IPY_MODEL_16f48f6e2af44c45a6c8bf7c62feb80e"
     }
    },
    "20235d0a25b942cbbe3a43b0e79b084e": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "21362da1989e4a4aa4c84dbac552115f": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_694e8f3018e6426ebe598917a920a3e8",
      "placeholder": "​",
      "style": "IPY_MODEL_dfe279159de44764b1f52f7ba6c161af",
      "value": "100%"
     }
    },
    "23223f72b27f4f85bc580f5732ae97c0": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_87046b1dec5f4189b52f517d5aed0614",
      "placeholder": "​",
      "style": "IPY_MODEL_696eb95e9f224eefa80e8d34841ac798",
      "value": "100%"
     }
    },
    "254d130afee243edb15dba9198e14f95": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "26bcaf624dd24d68aa15aef3a0866d2d": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "272fd9fb794347ab855f544acc3a720c": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "32a191a19773471f872c88468329e4ae": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "32fc7b9eff2f463a9e28b3aa7369500f": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "34b0ac29e4744ec5866c3cf31c2cab57": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "350d659062d34f90b0a61aca7f07b108": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "3b4eb48ac44e4cdc9310fa04adae8e00": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_f90632431c9e4de7b359b868810c5a7d",
      "placeholder": "​",
      "style": "IPY_MODEL_ab373d07afb942819cd636173630ba58",
      "value": "100%"
     }
    },
    "3b703b1d4ce24f949fbc49870af349bf": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "3bb210096b4a43a7abcaf4ed911d6e00": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "3cafb6d12ee149e3acedbfa568346e33": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "3dc2eed246ea4996ad7671f71eb47394": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "3e5d069cc92e4043bf5910b929fc33c5": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_f91d279664c74d53bc460d05f0af5d39",
      "max": 10,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_a3b71aabdf9e42fc9517aa924b114531",
      "value": 10
     }
    },
    "3f1d000380fd4a2e9cd823acf803883e": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "3f2f13e0559a4fafb4d759970be46bd6": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "41b025a486c64cd390339bcfe21fd62a": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_e55a11a7724e475a8249e578083cd3de",
      "max": 150,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_20235d0a25b942cbbe3a43b0e79b084e",
      "value": 150
     }
    },
    "41cbdb7ebcc8475981b9183190470fbf": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_4cb5a209da54421082b58fa407bc26e9",
      "placeholder": "​",
      "style": "IPY_MODEL_5c7f60cde457493fa6d8f914accb00c1",
      "value": " 5/5 [15:31&lt;00:00, 183.71s/it]"
     }
    },
    "4a57bee54360480f98bd88aaa8549d0b": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_c1364b3347f24575a7726165e145a054",
      "placeholder": "​",
      "style": "IPY_MODEL_8cc7a775f8e142a6b45317cd705c036a",
      "value": "100%"
     }
    },
    "4a79c15365174feea8dc1658133756c5": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "4cb5a209da54421082b58fa407bc26e9": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "52c543fb5696491f955f285bc4187b8d": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "543117542e0c470c8b38b177669e3dd0": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "54ca6b2cd1ac478cb3aa9e09eb87e413": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "583f6c14fb3b4125a7c4486782fe7a2f": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "5b5b28d04c76476fb2bfa4a23bd241cb": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "5c7f60cde457493fa6d8f914accb00c1": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "5d717bf09ecb441e8e61e57d92a623df": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "607c1f043b7346edb799452c68c9e7b1": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "62c29ae67a5c4f658f74f94caf75abd8": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_d2686785dee340b489781070fd0e4ab8",
      "placeholder": "​",
      "style": "IPY_MODEL_5d717bf09ecb441e8e61e57d92a623df",
      "value": "100%"
     }
    },
    "656d68087a7b4e2397ae787e863ee428": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "67080ebd1ca04cf7bdc642a9ea3b0697": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "694e8f3018e6426ebe598917a920a3e8": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "696eb95e9f224eefa80e8d34841ac798": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "6b4a4941520f4181bff6cd8394cb039f": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_a051a4276dc34b12815cd37518213d81",
      "max": 150,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_e7bfad97ff2f4042800d5938f5d05113",
      "value": 150
     }
    },
    "6f375d622ce84f95959f1ec00ab5b4fb": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "76a9c2e5ee364f6ab19cf7ddcd1ef310": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "8025ad7772fb40f69b2fddfd7eab62e6": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_6f375d622ce84f95959f1ec00ab5b4fb",
      "max": 10,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_1b7118878ac04c4ab3a5555f59aade61",
      "value": 10
     }
    },
    "80e05c26a564402da7e3b52fddc8845f": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_26bcaf624dd24d68aa15aef3a0866d2d",
      "placeholder": "​",
      "style": "IPY_MODEL_c7bbdad837be48179a660a2aea18005d",
      "value": " 25250/25250 [05:38&lt;00:00, 77.53it/s]"
     }
    },
    "87046b1dec5f4189b52f517d5aed0614": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "8cc7a775f8e142a6b45317cd705c036a": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "8fe414cbc5a7495180415c0754c526ec": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_54ca6b2cd1ac478cb3aa9e09eb87e413",
      "placeholder": "​",
      "style": "IPY_MODEL_32fc7b9eff2f463a9e28b3aa7369500f",
      "value": " 150/150 [00:05&lt;00:00, 37.37it/s]"
     }
    },
    "95eacc9dbddd4a56a882071b1b96a73d": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_21362da1989e4a4aa4c84dbac552115f",
       "IPY_MODEL_41b025a486c64cd390339bcfe21fd62a",
       "IPY_MODEL_8fe414cbc5a7495180415c0754c526ec"
      ],
      "layout": "IPY_MODEL_3f2f13e0559a4fafb4d759970be46bd6"
     }
    },
    "984c980048f24b2cbfb45df1dc3c9bd7": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_f7ddad2e2e604fd8b0240683f54ad8a3",
      "placeholder": "​",
      "style": "IPY_MODEL_afdc91f716ec416db36ef586ce623942",
      "value": " 10/10 [01:10&lt;00:00,  5.99s/it]"
     }
    },
    "98988f14959f4ca49d7af3d9b5929a0c": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "9a69b9bbcca740d6811e51bbf2c7e0c7": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "9c2aa13be594439f97e7fea01fbb0afb": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "a051a4276dc34b12815cd37518213d81": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "a152e63878824439bb7f4fc916e80f5b": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_52c543fb5696491f955f285bc4187b8d",
      "placeholder": "​",
      "style": "IPY_MODEL_f908c3aa76b9414795e0a7345ffaa7ca",
      "value": " 5050/5050 [01:07&lt;00:00, 40.17it/s]"
     }
    },
    "a3b71aabdf9e42fc9517aa924b114531": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "a70381f756144655b998a514ae83bd38": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "a8bab731fc1b41ffb526072144e661cf": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_4a79c15365174feea8dc1658133756c5",
      "max": 150,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_3cafb6d12ee149e3acedbfa568346e33",
      "value": 150
     }
    },
    "a9c96bdd52a64bd187368d93885efdfb": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "ab373d07afb942819cd636173630ba58": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "aed7142a2eee4822b96b65e38f703a97": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_67080ebd1ca04cf7bdc642a9ea3b0697",
      "max": 5,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_9c2aa13be594439f97e7fea01fbb0afb",
      "value": 5
     }
    },
    "aedc4452fd6c4e369c3b9a97f2dc7f4a": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_d80e97a6b93f4c2fb10f1dd68ef7d593",
       "IPY_MODEL_3e5d069cc92e4043bf5910b929fc33c5",
       "IPY_MODEL_fbe8e188bfb04a6686661761dc6d81d2"
      ],
      "layout": "IPY_MODEL_c104170bf4694edf925f9a1fbabe3f0c"
     }
    },
    "afdc91f716ec416db36ef586ce623942": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "b891ed053df248d1865c95eeaf13fff1": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_23223f72b27f4f85bc580f5732ae97c0",
       "IPY_MODEL_d86109f9c9e643a3bcf15486c305f635",
       "IPY_MODEL_e857367fa306441ca7ca9579e906e066"
      ],
      "layout": "IPY_MODEL_ba94ef6625db42208129c71d5f77f950"
     }
    },
    "b972c74283244c4580489025f2306921": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_62c29ae67a5c4f658f74f94caf75abd8",
       "IPY_MODEL_fdaf41692b1b4205bbe2b8570051062f",
       "IPY_MODEL_80e05c26a564402da7e3b52fddc8845f"
      ],
      "layout": "IPY_MODEL_5b5b28d04c76476fb2bfa4a23bd241cb"
     }
    },
    "ba54748f87e840ba9a3fcc8b2f30c135": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "ba94ef6625db42208129c71d5f77f950": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "c104170bf4694edf925f9a1fbabe3f0c": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "c1364b3347f24575a7726165e145a054": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "c7bbdad837be48179a660a2aea18005d": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "d2686785dee340b489781070fd0e4ab8": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "d2e3fd807351478abeb4fd9440310999": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "d659122cf5cf463487d84a21b56cea3b": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "d80e97a6b93f4c2fb10f1dd68ef7d593": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_3dc2eed246ea4996ad7671f71eb47394",
      "placeholder": "​",
      "style": "IPY_MODEL_187c5d5bf68643fbbe754554c5ed9143",
      "value": "100%"
     }
    },
    "d86109f9c9e643a3bcf15486c305f635": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_3f1d000380fd4a2e9cd823acf803883e",
      "max": 150,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_272fd9fb794347ab855f544acc3a720c",
      "value": 150
     }
    },
    "d88fef0654ba494c840cef7f23c86651": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "d9c166e1d7d9461eb3d9fe0fa2ced5b1": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_254d130afee243edb15dba9198e14f95",
      "placeholder": "​",
      "style": "IPY_MODEL_350d659062d34f90b0a61aca7f07b108",
      "value": "100%"
     }
    },
    "dd408b5b110343aface399a3c60ff424": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_dddf8f6393bb4834aa7df26716849ca0",
       "IPY_MODEL_deb9a344e20d4a29b0e24980ed577395",
       "IPY_MODEL_a152e63878824439bb7f4fc916e80f5b"
      ],
      "layout": "IPY_MODEL_34b0ac29e4744ec5866c3cf31c2cab57"
     }
    },
    "dddf8f6393bb4834aa7df26716849ca0": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_543117542e0c470c8b38b177669e3dd0",
      "placeholder": "​",
      "style": "IPY_MODEL_d659122cf5cf463487d84a21b56cea3b",
      "value": "100%"
     }
    },
    "deb9a344e20d4a29b0e24980ed577395": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_32a191a19773471f872c88468329e4ae",
      "max": 5050,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_656d68087a7b4e2397ae787e863ee428",
      "value": 5050
     }
    },
    "dfe279159de44764b1f52f7ba6c161af": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "e2efe6b3123e489988806acd74d20f0a": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_1578fb055b2b409a9a66b07471aa21c3",
      "placeholder": "​",
      "style": "IPY_MODEL_98988f14959f4ca49d7af3d9b5929a0c",
      "value": "100%"
     }
    },
    "e55a11a7724e475a8249e578083cd3de": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "e7bfad97ff2f4042800d5938f5d05113": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "e857367fa306441ca7ca9579e906e066": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_a70381f756144655b998a514ae83bd38",
      "placeholder": "​",
      "style": "IPY_MODEL_d88fef0654ba494c840cef7f23c86651",
      "value": " 150/150 [00:02&lt;00:00, 52.68it/s]"
     }
    },
    "eb61d02241d3438fbf44a3e629adfcb6": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "ef9785a565e24c559819d32c72aa3a82": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_a9c96bdd52a64bd187368d93885efdfb",
      "placeholder": "​",
      "style": "IPY_MODEL_3b703b1d4ce24f949fbc49870af349bf",
      "value": " 150/150 [00:35&lt;00:00,  4.67it/s]"
     }
    },
    "f1ffa42e1a954ccf9e8b7eafbf6ee979": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_607c1f043b7346edb799452c68c9e7b1",
      "placeholder": "​",
      "style": "IPY_MODEL_f75b9f1386f54a20bb8cd89114647bd6",
      "value": " 150/150 [01:21&lt;00:00,  1.88it/s]"
     }
    },
    "f75b9f1386f54a20bb8cd89114647bd6": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "f7ddad2e2e604fd8b0240683f54ad8a3": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "f90632431c9e4de7b359b868810c5a7d": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "f908c3aa76b9414795e0a7345ffaa7ca": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "f91d279664c74d53bc460d05f0af5d39": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "fae8ecf2a0774606977f158608ac8866": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_4a57bee54360480f98bd88aaa8549d0b",
       "IPY_MODEL_a8bab731fc1b41ffb526072144e661cf",
       "IPY_MODEL_f1ffa42e1a954ccf9e8b7eafbf6ee979"
      ],
      "layout": "IPY_MODEL_76a9c2e5ee364f6ab19cf7ddcd1ef310"
     }
    },
    "fbe8e188bfb04a6686661761dc6d81d2": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_d2e3fd807351478abeb4fd9440310999",
      "placeholder": "​",
      "style": "IPY_MODEL_9a69b9bbcca740d6811e51bbf2c7e0c7",
      "value": " 10/10 [01:45&lt;00:00, 10.57s/it]"
     }
    },
    "fdaf41692b1b4205bbe2b8570051062f": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_eb61d02241d3438fbf44a3e629adfcb6",
      "max": 25250,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_ba54748f87e840ba9a3fcc8b2f30c135",
      "value": 25250
     }
    }
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
